nl-linux 0.2.4 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/.yardopts +5 -0
- data/CHANGELOG.md +8 -0
- data/Rakefile +27 -5
- data/generated/nl/linux/binder.rb +227 -19
- data/generated/nl/linux/conntrack.rb +1325 -365
- data/generated/nl/linux/dev_energymodel.rb +357 -66
- data/generated/nl/linux/devlink.rb +6310 -1859
- data/generated/nl/linux/dpll.rb +2202 -376
- data/generated/nl/linux/drm_ras.rb +312 -63
- data/generated/nl/linux/ethtool.rb +7555 -2447
- data/generated/nl/linux/fou.rb +381 -133
- data/generated/nl/linux/handshake.rb +340 -70
- data/generated/nl/linux/lockd.rb +132 -27
- data/generated/nl/linux/mptcp_pm.rb +773 -161
- data/generated/nl/linux/net_shaper.rb +892 -211
- data/generated/nl/linux/netdev.rb +2366 -518
- data/generated/nl/linux/nfsd.rb +1299 -317
- data/generated/nl/linux/nftables.rb +5351 -1533
- data/generated/nl/linux/nl80211.rb +4601 -882
- data/generated/nl/linux/nlctrl.rb +460 -117
- data/generated/nl/linux/ovpn.rb +1360 -262
- data/generated/nl/linux/ovs_datapath.rb +312 -98
- data/generated/nl/linux/ovs_flow.rb +1866 -358
- data/generated/nl/linux/ovs_packet.rb +331 -45
- data/generated/nl/linux/ovs_vport.rb +374 -123
- data/generated/nl/linux/psp.rb +1093 -201
- data/generated/nl/linux/rt_addr.rb +423 -165
- data/generated/nl/linux/rt_link.rb +6928 -1336
- data/generated/nl/linux/rt_neigh.rb +1063 -297
- data/generated/nl/linux/rt_route.rb +1112 -483
- data/generated/nl/linux/rt_rule.rb +931 -262
- data/generated/nl/linux/sunrpc_cache.rb +407 -82
- data/generated/nl/linux/tc.rb +10081 -1763
- data/generated/nl/linux/tcp_metrics.rb +388 -109
- data/generated/nl/linux/team.rb +350 -84
- data/generated/nl/linux/wireguard.rb +525 -96
- data/generated/nl/linux.rb +1 -0
- data/lib/nl/linux/nlctrl_resolver.rb +31 -0
- data/lib/nl/linux/version.rb +1 -1
- data/sig/generated/nl/linux/binder.rbs +366 -0
- data/sig/generated/nl/linux/conntrack.rbs +2787 -0
- data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
- data/sig/generated/nl/linux/devlink.rbs +12496 -0
- data/sig/generated/nl/linux/dpll.rbs +3461 -0
- data/sig/generated/nl/linux/drm_ras.rbs +553 -0
- data/sig/generated/nl/linux/ethtool.rbs +15291 -0
- data/sig/generated/nl/linux/fou.rbs +702 -0
- data/sig/generated/nl/linux/handshake.rbs +622 -0
- data/sig/generated/nl/linux/lockd.rbs +234 -0
- data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
- data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
- data/sig/generated/nl/linux/netdev.rbs +4187 -0
- data/sig/generated/nl/linux/nfsd.rbs +2520 -0
- data/sig/generated/nl/linux/nftables.rbs +10304 -0
- data/sig/generated/nl/linux/nl80211.rbs +9786 -0
- data/sig/generated/nl/linux/nlctrl.rbs +944 -0
- data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
- data/sig/generated/nl/linux/ovpn.rbs +2564 -0
- data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
- data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
- data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
- data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
- data/sig/generated/nl/linux/psp.rbs +1846 -0
- data/sig/generated/nl/linux/rt_addr.rbs +866 -0
- data/sig/generated/nl/linux/rt_link.rbs +13438 -0
- data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
- data/sig/generated/nl/linux/rt_route.rbs +2218 -0
- data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
- data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
- data/sig/generated/nl/linux/tc.rbs +19931 -0
- data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
- data/sig/generated/nl/linux/team.rbs +733 -0
- data/sig/generated/nl/linux/version.rbs +7 -0
- data/sig/generated/nl/linux/wireguard.rbs +1006 -0
- data/sig/generated/nl/linux.rbs +6 -0
- data/sig/generated/nl-linux.rbs +2 -0
- metadata +51 -10
|
@@ -0,0 +1,4187 @@
|
|
|
1
|
+
# Generated from generated/nl/linux/netdev.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Nl
|
|
4
|
+
module Linux
|
|
5
|
+
# netdev configuration over generic netlink.
|
|
6
|
+
class Netdev < ::Nl::Genl::Family
|
|
7
|
+
NAME: ::String
|
|
8
|
+
|
|
9
|
+
VERSION: ::Integer
|
|
10
|
+
|
|
11
|
+
# @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
|
|
12
|
+
# @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
|
|
13
|
+
# @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
|
|
14
|
+
# @param [#call] resolver
|
|
15
|
+
# @param [Symbol, nil] executor
|
|
16
|
+
# @param [Integer, nil] notification_capacity
|
|
17
|
+
# @return [Netdev]
|
|
18
|
+
# @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
|
|
19
|
+
# @param [#call] resolver
|
|
20
|
+
# @param [Symbol, nil] executor
|
|
21
|
+
# @param [Integer, nil] notification_capacity
|
|
22
|
+
# @yieldparam [Netdev] family
|
|
23
|
+
# @return [Object] the result of the block
|
|
24
|
+
def self.open: (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
|
|
25
|
+
|
|
26
|
+
# @private
|
|
27
|
+
MCAST_GROUPS: Hash[::Symbol, ::Nl::McastGroup]
|
|
28
|
+
|
|
29
|
+
module Enums
|
|
30
|
+
module QueueType
|
|
31
|
+
Rx: ::Integer
|
|
32
|
+
|
|
33
|
+
Tx: ::Integer
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
module NapiThreaded
|
|
37
|
+
Disabled: ::Integer
|
|
38
|
+
|
|
39
|
+
Enabled: ::Integer
|
|
40
|
+
|
|
41
|
+
BusyPoll: ::Integer
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
module Flags
|
|
46
|
+
module XdpAct
|
|
47
|
+
# XDP features set supported by all drivers (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)
|
|
48
|
+
Basic: ::Integer
|
|
49
|
+
|
|
50
|
+
# The netdev supports XDP_REDIRECT
|
|
51
|
+
Redirect: ::Integer
|
|
52
|
+
|
|
53
|
+
# This feature informs if netdev implements ndo_xdp_xmit callback.
|
|
54
|
+
NdoXmit: ::Integer
|
|
55
|
+
|
|
56
|
+
# This feature informs if netdev supports AF_XDP in zero copy mode.
|
|
57
|
+
XskZerocopy: ::Integer
|
|
58
|
+
|
|
59
|
+
# This feature informs if netdev supports XDP hw offloading.
|
|
60
|
+
HwOffload: ::Integer
|
|
61
|
+
|
|
62
|
+
# This feature informs if netdev implements non-linear XDP buffer support in the driver napi callback.
|
|
63
|
+
RxSg: ::Integer
|
|
64
|
+
|
|
65
|
+
# This feature informs if netdev implements non-linear XDP buffer support in ndo_xdp_xmit callback.
|
|
66
|
+
NdoXmitSg: ::Integer
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
module XdpRxMetadata
|
|
70
|
+
# Device is capable of exposing receive HW timestamp via
|
|
71
|
+
# bpf_xdp_metadata_rx_timestamp().
|
|
72
|
+
Timestamp: ::Integer
|
|
73
|
+
|
|
74
|
+
# Device is capable of exposing receive packet hash via
|
|
75
|
+
# bpf_xdp_metadata_rx_hash().
|
|
76
|
+
Hash: ::Integer
|
|
77
|
+
|
|
78
|
+
# Device is capable of exposing receive packet VLAN tag via
|
|
79
|
+
# bpf_xdp_metadata_rx_vlan_tag().
|
|
80
|
+
VlanTag: ::Integer
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
module XskFlags
|
|
84
|
+
# HW timestamping egress packets is supported by the driver.
|
|
85
|
+
TxTimestamp: ::Integer
|
|
86
|
+
|
|
87
|
+
# L3 checksum HW offload is supported by the driver.
|
|
88
|
+
TxChecksum: ::Integer
|
|
89
|
+
|
|
90
|
+
# Launch time HW offload is supported by the driver.
|
|
91
|
+
TxLaunchTimeFifo: ::Integer
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
module QstatsScope
|
|
95
|
+
Queue: ::Integer
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
module Structs
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
module AttributeSets
|
|
103
|
+
class Dev < ::Nl::AttributeSet
|
|
104
|
+
# Abstract class
|
|
105
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# netdev ifindex
|
|
109
|
+
class Ifindex < Attribute
|
|
110
|
+
TYPE: ::Integer
|
|
111
|
+
|
|
112
|
+
NAME: ::Symbol
|
|
113
|
+
|
|
114
|
+
# @private
|
|
115
|
+
ORDER: ::Integer
|
|
116
|
+
|
|
117
|
+
# @private
|
|
118
|
+
DATATYPE: untyped
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
class Pad < Attribute
|
|
122
|
+
TYPE: ::Integer
|
|
123
|
+
|
|
124
|
+
NAME: ::Symbol
|
|
125
|
+
|
|
126
|
+
# @private
|
|
127
|
+
ORDER: ::Integer
|
|
128
|
+
|
|
129
|
+
# @private
|
|
130
|
+
DATATYPE: untyped
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Bitmask of enabled xdp-features.
|
|
134
|
+
#
|
|
135
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
136
|
+
class XdpFeatures < Attribute
|
|
137
|
+
TYPE: ::Integer
|
|
138
|
+
|
|
139
|
+
NAME: ::Symbol
|
|
140
|
+
|
|
141
|
+
# @private
|
|
142
|
+
ORDER: ::Integer
|
|
143
|
+
|
|
144
|
+
# @private
|
|
145
|
+
DATATYPE: untyped
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# max fragment count supported by ZC driver
|
|
149
|
+
class XdpZcMaxSegs < Attribute
|
|
150
|
+
TYPE: ::Integer
|
|
151
|
+
|
|
152
|
+
NAME: ::Symbol
|
|
153
|
+
|
|
154
|
+
# @private
|
|
155
|
+
ORDER: ::Integer
|
|
156
|
+
|
|
157
|
+
# @private
|
|
158
|
+
DATATYPE: untyped
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
162
|
+
#
|
|
163
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
164
|
+
class XdpRxMetadataFeatures < Attribute
|
|
165
|
+
TYPE: ::Integer
|
|
166
|
+
|
|
167
|
+
NAME: ::Symbol
|
|
168
|
+
|
|
169
|
+
# @private
|
|
170
|
+
ORDER: ::Integer
|
|
171
|
+
|
|
172
|
+
# @private
|
|
173
|
+
DATATYPE: untyped
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Bitmask of enabled AF_XDP features.
|
|
177
|
+
#
|
|
178
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
179
|
+
class XskFeatures < Attribute
|
|
180
|
+
TYPE: ::Integer
|
|
181
|
+
|
|
182
|
+
NAME: ::Symbol
|
|
183
|
+
|
|
184
|
+
# @private
|
|
185
|
+
ORDER: ::Integer
|
|
186
|
+
|
|
187
|
+
# @private
|
|
188
|
+
DATATYPE: untyped
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
# @private
|
|
192
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
193
|
+
|
|
194
|
+
# @private
|
|
195
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
196
|
+
|
|
197
|
+
# netdev ifindex
|
|
198
|
+
# @rbs return: ::Integer
|
|
199
|
+
# @return [Integer]
|
|
200
|
+
# @see Ifindex
|
|
201
|
+
def ifindex: () -> ::Integer
|
|
202
|
+
|
|
203
|
+
# Bitmask of enabled xdp-features.
|
|
204
|
+
#
|
|
205
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
206
|
+
# @rbs return: ::Integer
|
|
207
|
+
# @return [Integer]
|
|
208
|
+
# @see XdpFeatures
|
|
209
|
+
def xdp_features: () -> ::Integer
|
|
210
|
+
|
|
211
|
+
# max fragment count supported by ZC driver
|
|
212
|
+
# @rbs return: ::Integer
|
|
213
|
+
# @return [Integer]
|
|
214
|
+
# @see XdpZcMaxSegs
|
|
215
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
216
|
+
|
|
217
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
218
|
+
#
|
|
219
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
220
|
+
# @rbs return: ::Integer
|
|
221
|
+
# @return [Integer]
|
|
222
|
+
# @see XdpRxMetadataFeatures
|
|
223
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
224
|
+
|
|
225
|
+
# Bitmask of enabled AF_XDP features.
|
|
226
|
+
#
|
|
227
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
228
|
+
# @rbs return: ::Integer
|
|
229
|
+
# @return [Integer]
|
|
230
|
+
# @see XskFeatures
|
|
231
|
+
def xsk_features: () -> ::Integer
|
|
232
|
+
|
|
233
|
+
# Looks up Attribute class by name.
|
|
234
|
+
# @rbs name: Symbol
|
|
235
|
+
# @rbs return: Attribute
|
|
236
|
+
# @param [Symbol] name
|
|
237
|
+
# @return [Attribute]
|
|
238
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
239
|
+
|
|
240
|
+
# Looks up Attribute class by type value.
|
|
241
|
+
# @rbs type: Integer
|
|
242
|
+
# @rbs return: Attribute
|
|
243
|
+
# @param [Integer] type
|
|
244
|
+
# @return [Attribute]
|
|
245
|
+
def self.by_type: (Integer type) -> Attribute
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
class IoUringProviderInfo < ::Nl::AttributeSet
|
|
249
|
+
# Abstract class
|
|
250
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
# RX buffer length in bytes for this io_uring memory provider.
|
|
254
|
+
# Reflects the rx_buf_len passed at io_uring zerocopy rx
|
|
255
|
+
# registration time.
|
|
256
|
+
class RxBufLen < Attribute
|
|
257
|
+
TYPE: ::Integer
|
|
258
|
+
|
|
259
|
+
NAME: ::Symbol
|
|
260
|
+
|
|
261
|
+
# @private
|
|
262
|
+
ORDER: ::Integer
|
|
263
|
+
|
|
264
|
+
# @private
|
|
265
|
+
DATATYPE: untyped
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
# @private
|
|
269
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
270
|
+
|
|
271
|
+
# @private
|
|
272
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
273
|
+
|
|
274
|
+
# RX buffer length in bytes for this io_uring memory provider.
|
|
275
|
+
# Reflects the rx_buf_len passed at io_uring zerocopy rx
|
|
276
|
+
# registration time.
|
|
277
|
+
# @rbs return: ::Integer
|
|
278
|
+
# @return [Integer]
|
|
279
|
+
# @see RxBufLen
|
|
280
|
+
def rx_buf_len: () -> ::Integer
|
|
281
|
+
|
|
282
|
+
# Looks up Attribute class by name.
|
|
283
|
+
# @rbs name: Symbol
|
|
284
|
+
# @rbs return: Attribute
|
|
285
|
+
# @param [Symbol] name
|
|
286
|
+
# @return [Attribute]
|
|
287
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
288
|
+
|
|
289
|
+
# Looks up Attribute class by type value.
|
|
290
|
+
# @rbs type: Integer
|
|
291
|
+
# @rbs return: Attribute
|
|
292
|
+
# @param [Integer] type
|
|
293
|
+
# @return [Attribute]
|
|
294
|
+
def self.by_type: (Integer type) -> Attribute
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
class PagePool < ::Nl::AttributeSet
|
|
298
|
+
# Abstract class
|
|
299
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
# Unique ID of a Page Pool instance.
|
|
303
|
+
class Id < Attribute
|
|
304
|
+
TYPE: ::Integer
|
|
305
|
+
|
|
306
|
+
NAME: ::Symbol
|
|
307
|
+
|
|
308
|
+
# @private
|
|
309
|
+
ORDER: ::Integer
|
|
310
|
+
|
|
311
|
+
# @private
|
|
312
|
+
DATATYPE: untyped
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
# ifindex of the netdev to which the pool belongs.
|
|
316
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
317
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
318
|
+
# because they wait for all memory to be returned).
|
|
319
|
+
class Ifindex < Attribute
|
|
320
|
+
TYPE: ::Integer
|
|
321
|
+
|
|
322
|
+
NAME: ::Symbol
|
|
323
|
+
|
|
324
|
+
# @private
|
|
325
|
+
ORDER: ::Integer
|
|
326
|
+
|
|
327
|
+
# @private
|
|
328
|
+
DATATYPE: untyped
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# Id of NAPI using this Page Pool instance.
|
|
332
|
+
class NapiId < Attribute
|
|
333
|
+
TYPE: ::Integer
|
|
334
|
+
|
|
335
|
+
NAME: ::Symbol
|
|
336
|
+
|
|
337
|
+
# @private
|
|
338
|
+
ORDER: ::Integer
|
|
339
|
+
|
|
340
|
+
# @private
|
|
341
|
+
DATATYPE: untyped
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
# Number of outstanding references to this page pool (allocated
|
|
345
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
346
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
347
|
+
# ring, the page pool cache, etc.
|
|
348
|
+
class Inflight < Attribute
|
|
349
|
+
TYPE: ::Integer
|
|
350
|
+
|
|
351
|
+
NAME: ::Symbol
|
|
352
|
+
|
|
353
|
+
# @private
|
|
354
|
+
ORDER: ::Integer
|
|
355
|
+
|
|
356
|
+
# @private
|
|
357
|
+
DATATYPE: untyped
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
# Amount of memory held by inflight pages.
|
|
361
|
+
class InflightMem < Attribute
|
|
362
|
+
TYPE: ::Integer
|
|
363
|
+
|
|
364
|
+
NAME: ::Symbol
|
|
365
|
+
|
|
366
|
+
# @private
|
|
367
|
+
ORDER: ::Integer
|
|
368
|
+
|
|
369
|
+
# @private
|
|
370
|
+
DATATYPE: untyped
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
374
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
375
|
+
# allocate memory.
|
|
376
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
377
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
378
|
+
# "re-attached", they are just waiting to disappear.
|
|
379
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
380
|
+
# can still be used to allocate new memory.
|
|
381
|
+
class DetachTime < Attribute
|
|
382
|
+
TYPE: ::Integer
|
|
383
|
+
|
|
384
|
+
NAME: ::Symbol
|
|
385
|
+
|
|
386
|
+
# @private
|
|
387
|
+
ORDER: ::Integer
|
|
388
|
+
|
|
389
|
+
# @private
|
|
390
|
+
DATATYPE: untyped
|
|
391
|
+
end
|
|
392
|
+
|
|
393
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
394
|
+
class Dmabuf < Attribute
|
|
395
|
+
TYPE: ::Integer
|
|
396
|
+
|
|
397
|
+
NAME: ::Symbol
|
|
398
|
+
|
|
399
|
+
# @private
|
|
400
|
+
ORDER: ::Integer
|
|
401
|
+
|
|
402
|
+
# @private
|
|
403
|
+
DATATYPE: untyped
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
# io-uring memory provider information.
|
|
407
|
+
class IoUring < Attribute
|
|
408
|
+
TYPE: ::Integer
|
|
409
|
+
|
|
410
|
+
NAME: ::Symbol
|
|
411
|
+
|
|
412
|
+
# @private
|
|
413
|
+
ORDER: ::Integer
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
# @private
|
|
417
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
418
|
+
|
|
419
|
+
# @private
|
|
420
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
421
|
+
|
|
422
|
+
# Unique ID of a Page Pool instance.
|
|
423
|
+
# @rbs return: ::Integer
|
|
424
|
+
# @return [Integer]
|
|
425
|
+
# @see Id
|
|
426
|
+
def id: () -> ::Integer
|
|
427
|
+
|
|
428
|
+
# ifindex of the netdev to which the pool belongs.
|
|
429
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
430
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
431
|
+
# because they wait for all memory to be returned).
|
|
432
|
+
# @rbs return: ::Integer
|
|
433
|
+
# @return [Integer]
|
|
434
|
+
# @see Ifindex
|
|
435
|
+
def ifindex: () -> ::Integer
|
|
436
|
+
|
|
437
|
+
# Id of NAPI using this Page Pool instance.
|
|
438
|
+
# @rbs return: ::Integer
|
|
439
|
+
# @return [Integer]
|
|
440
|
+
# @see NapiId
|
|
441
|
+
def napi_id: () -> ::Integer
|
|
442
|
+
|
|
443
|
+
# Number of outstanding references to this page pool (allocated
|
|
444
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
445
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
446
|
+
# ring, the page pool cache, etc.
|
|
447
|
+
# @rbs return: ::Integer
|
|
448
|
+
# @return [Integer]
|
|
449
|
+
# @see Inflight
|
|
450
|
+
def inflight: () -> ::Integer
|
|
451
|
+
|
|
452
|
+
# Amount of memory held by inflight pages.
|
|
453
|
+
# @rbs return: ::Integer
|
|
454
|
+
# @return [Integer]
|
|
455
|
+
# @see InflightMem
|
|
456
|
+
def inflight_mem: () -> ::Integer
|
|
457
|
+
|
|
458
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
459
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
460
|
+
# allocate memory.
|
|
461
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
462
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
463
|
+
# "re-attached", they are just waiting to disappear.
|
|
464
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
465
|
+
# can still be used to allocate new memory.
|
|
466
|
+
# @rbs return: ::Integer
|
|
467
|
+
# @return [Integer]
|
|
468
|
+
# @see DetachTime
|
|
469
|
+
def detach_time: () -> ::Integer
|
|
470
|
+
|
|
471
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
472
|
+
# @rbs return: ::Integer
|
|
473
|
+
# @return [Integer]
|
|
474
|
+
# @see Dmabuf
|
|
475
|
+
def dmabuf: () -> ::Integer
|
|
476
|
+
|
|
477
|
+
# io-uring memory provider information.
|
|
478
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
479
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
480
|
+
# @see IoUring
|
|
481
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
482
|
+
|
|
483
|
+
# Looks up Attribute class by name.
|
|
484
|
+
# @rbs name: Symbol
|
|
485
|
+
# @rbs return: Attribute
|
|
486
|
+
# @param [Symbol] name
|
|
487
|
+
# @return [Attribute]
|
|
488
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
489
|
+
|
|
490
|
+
# Looks up Attribute class by type value.
|
|
491
|
+
# @rbs type: Integer
|
|
492
|
+
# @rbs return: Attribute
|
|
493
|
+
# @param [Integer] type
|
|
494
|
+
# @return [Attribute]
|
|
495
|
+
def self.by_type: (Integer type) -> Attribute
|
|
496
|
+
end
|
|
497
|
+
|
|
498
|
+
class PagePoolInfo < ::Nl::AttributeSet
|
|
499
|
+
# Abstract class
|
|
500
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
# Unique ID of a Page Pool instance.
|
|
504
|
+
class Id < Attribute
|
|
505
|
+
TYPE: ::Integer
|
|
506
|
+
|
|
507
|
+
NAME: ::Symbol
|
|
508
|
+
|
|
509
|
+
# @private
|
|
510
|
+
ORDER: ::Integer
|
|
511
|
+
|
|
512
|
+
# @private
|
|
513
|
+
DATATYPE: untyped
|
|
514
|
+
end
|
|
515
|
+
|
|
516
|
+
# ifindex of the netdev to which the pool belongs.
|
|
517
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
518
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
519
|
+
# because they wait for all memory to be returned).
|
|
520
|
+
class Ifindex < Attribute
|
|
521
|
+
TYPE: ::Integer
|
|
522
|
+
|
|
523
|
+
NAME: ::Symbol
|
|
524
|
+
|
|
525
|
+
# @private
|
|
526
|
+
ORDER: ::Integer
|
|
527
|
+
|
|
528
|
+
# @private
|
|
529
|
+
DATATYPE: untyped
|
|
530
|
+
end
|
|
531
|
+
|
|
532
|
+
# @private
|
|
533
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
534
|
+
|
|
535
|
+
# @private
|
|
536
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
537
|
+
|
|
538
|
+
# Unique ID of a Page Pool instance.
|
|
539
|
+
# @rbs return: ::Integer
|
|
540
|
+
# @return [Integer]
|
|
541
|
+
# @see Id
|
|
542
|
+
def id: () -> ::Integer
|
|
543
|
+
|
|
544
|
+
# ifindex of the netdev to which the pool belongs.
|
|
545
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
546
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
547
|
+
# because they wait for all memory to be returned).
|
|
548
|
+
# @rbs return: ::Integer
|
|
549
|
+
# @return [Integer]
|
|
550
|
+
# @see Ifindex
|
|
551
|
+
def ifindex: () -> ::Integer
|
|
552
|
+
|
|
553
|
+
# Looks up Attribute class by name.
|
|
554
|
+
# @rbs name: Symbol
|
|
555
|
+
# @rbs return: Attribute
|
|
556
|
+
# @param [Symbol] name
|
|
557
|
+
# @return [Attribute]
|
|
558
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
559
|
+
|
|
560
|
+
# Looks up Attribute class by type value.
|
|
561
|
+
# @rbs type: Integer
|
|
562
|
+
# @rbs return: Attribute
|
|
563
|
+
# @param [Integer] type
|
|
564
|
+
# @return [Attribute]
|
|
565
|
+
def self.by_type: (Integer type) -> Attribute
|
|
566
|
+
end
|
|
567
|
+
|
|
568
|
+
# Page pool statistics, see docs for struct page_pool_stats
|
|
569
|
+
# for information about individual statistics.
|
|
570
|
+
class PagePoolStats < ::Nl::AttributeSet
|
|
571
|
+
# Abstract class
|
|
572
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
573
|
+
end
|
|
574
|
+
|
|
575
|
+
# Page pool identifying information.
|
|
576
|
+
class Info < Attribute
|
|
577
|
+
TYPE: ::Integer
|
|
578
|
+
|
|
579
|
+
NAME: ::Symbol
|
|
580
|
+
|
|
581
|
+
# @private
|
|
582
|
+
ORDER: ::Integer
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
class AllocFast < Attribute
|
|
586
|
+
TYPE: ::Integer
|
|
587
|
+
|
|
588
|
+
NAME: ::Symbol
|
|
589
|
+
|
|
590
|
+
# @private
|
|
591
|
+
ORDER: ::Integer
|
|
592
|
+
|
|
593
|
+
# @private
|
|
594
|
+
DATATYPE: untyped
|
|
595
|
+
end
|
|
596
|
+
|
|
597
|
+
class AllocSlow < Attribute
|
|
598
|
+
TYPE: ::Integer
|
|
599
|
+
|
|
600
|
+
NAME: ::Symbol
|
|
601
|
+
|
|
602
|
+
# @private
|
|
603
|
+
ORDER: ::Integer
|
|
604
|
+
|
|
605
|
+
# @private
|
|
606
|
+
DATATYPE: untyped
|
|
607
|
+
end
|
|
608
|
+
|
|
609
|
+
class AllocSlowHighOrder < Attribute
|
|
610
|
+
TYPE: ::Integer
|
|
611
|
+
|
|
612
|
+
NAME: ::Symbol
|
|
613
|
+
|
|
614
|
+
# @private
|
|
615
|
+
ORDER: ::Integer
|
|
616
|
+
|
|
617
|
+
# @private
|
|
618
|
+
DATATYPE: untyped
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
class AllocEmpty < Attribute
|
|
622
|
+
TYPE: ::Integer
|
|
623
|
+
|
|
624
|
+
NAME: ::Symbol
|
|
625
|
+
|
|
626
|
+
# @private
|
|
627
|
+
ORDER: ::Integer
|
|
628
|
+
|
|
629
|
+
# @private
|
|
630
|
+
DATATYPE: untyped
|
|
631
|
+
end
|
|
632
|
+
|
|
633
|
+
class AllocRefill < Attribute
|
|
634
|
+
TYPE: ::Integer
|
|
635
|
+
|
|
636
|
+
NAME: ::Symbol
|
|
637
|
+
|
|
638
|
+
# @private
|
|
639
|
+
ORDER: ::Integer
|
|
640
|
+
|
|
641
|
+
# @private
|
|
642
|
+
DATATYPE: untyped
|
|
643
|
+
end
|
|
644
|
+
|
|
645
|
+
class AllocWaive < Attribute
|
|
646
|
+
TYPE: ::Integer
|
|
647
|
+
|
|
648
|
+
NAME: ::Symbol
|
|
649
|
+
|
|
650
|
+
# @private
|
|
651
|
+
ORDER: ::Integer
|
|
652
|
+
|
|
653
|
+
# @private
|
|
654
|
+
DATATYPE: untyped
|
|
655
|
+
end
|
|
656
|
+
|
|
657
|
+
class RecycleCached < Attribute
|
|
658
|
+
TYPE: ::Integer
|
|
659
|
+
|
|
660
|
+
NAME: ::Symbol
|
|
661
|
+
|
|
662
|
+
# @private
|
|
663
|
+
ORDER: ::Integer
|
|
664
|
+
|
|
665
|
+
# @private
|
|
666
|
+
DATATYPE: untyped
|
|
667
|
+
end
|
|
668
|
+
|
|
669
|
+
class RecycleCacheFull < Attribute
|
|
670
|
+
TYPE: ::Integer
|
|
671
|
+
|
|
672
|
+
NAME: ::Symbol
|
|
673
|
+
|
|
674
|
+
# @private
|
|
675
|
+
ORDER: ::Integer
|
|
676
|
+
|
|
677
|
+
# @private
|
|
678
|
+
DATATYPE: untyped
|
|
679
|
+
end
|
|
680
|
+
|
|
681
|
+
class RecycleRing < Attribute
|
|
682
|
+
TYPE: ::Integer
|
|
683
|
+
|
|
684
|
+
NAME: ::Symbol
|
|
685
|
+
|
|
686
|
+
# @private
|
|
687
|
+
ORDER: ::Integer
|
|
688
|
+
|
|
689
|
+
# @private
|
|
690
|
+
DATATYPE: untyped
|
|
691
|
+
end
|
|
692
|
+
|
|
693
|
+
class RecycleRingFull < Attribute
|
|
694
|
+
TYPE: ::Integer
|
|
695
|
+
|
|
696
|
+
NAME: ::Symbol
|
|
697
|
+
|
|
698
|
+
# @private
|
|
699
|
+
ORDER: ::Integer
|
|
700
|
+
|
|
701
|
+
# @private
|
|
702
|
+
DATATYPE: untyped
|
|
703
|
+
end
|
|
704
|
+
|
|
705
|
+
class RecycleReleasedRefcnt < Attribute
|
|
706
|
+
TYPE: ::Integer
|
|
707
|
+
|
|
708
|
+
NAME: ::Symbol
|
|
709
|
+
|
|
710
|
+
# @private
|
|
711
|
+
ORDER: ::Integer
|
|
712
|
+
|
|
713
|
+
# @private
|
|
714
|
+
DATATYPE: untyped
|
|
715
|
+
end
|
|
716
|
+
|
|
717
|
+
# @private
|
|
718
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
719
|
+
|
|
720
|
+
# @private
|
|
721
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
722
|
+
|
|
723
|
+
# Page pool identifying information.
|
|
724
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
725
|
+
# @return [AttributeSets::PagePoolInfo]
|
|
726
|
+
# @see Info
|
|
727
|
+
def info: () -> AttributeSets::PagePoolInfo
|
|
728
|
+
|
|
729
|
+
# @rbs return: ::Integer
|
|
730
|
+
# @return [Integer]
|
|
731
|
+
# @see AllocFast
|
|
732
|
+
def alloc_fast: () -> ::Integer
|
|
733
|
+
|
|
734
|
+
# @rbs return: ::Integer
|
|
735
|
+
# @return [Integer]
|
|
736
|
+
# @see AllocSlow
|
|
737
|
+
def alloc_slow: () -> ::Integer
|
|
738
|
+
|
|
739
|
+
# @rbs return: ::Integer
|
|
740
|
+
# @return [Integer]
|
|
741
|
+
# @see AllocSlowHighOrder
|
|
742
|
+
def alloc_slow_high_order: () -> ::Integer
|
|
743
|
+
|
|
744
|
+
# @rbs return: ::Integer
|
|
745
|
+
# @return [Integer]
|
|
746
|
+
# @see AllocEmpty
|
|
747
|
+
def alloc_empty: () -> ::Integer
|
|
748
|
+
|
|
749
|
+
# @rbs return: ::Integer
|
|
750
|
+
# @return [Integer]
|
|
751
|
+
# @see AllocRefill
|
|
752
|
+
def alloc_refill: () -> ::Integer
|
|
753
|
+
|
|
754
|
+
# @rbs return: ::Integer
|
|
755
|
+
# @return [Integer]
|
|
756
|
+
# @see AllocWaive
|
|
757
|
+
def alloc_waive: () -> ::Integer
|
|
758
|
+
|
|
759
|
+
# @rbs return: ::Integer
|
|
760
|
+
# @return [Integer]
|
|
761
|
+
# @see RecycleCached
|
|
762
|
+
def recycle_cached: () -> ::Integer
|
|
763
|
+
|
|
764
|
+
# @rbs return: ::Integer
|
|
765
|
+
# @return [Integer]
|
|
766
|
+
# @see RecycleCacheFull
|
|
767
|
+
def recycle_cache_full: () -> ::Integer
|
|
768
|
+
|
|
769
|
+
# @rbs return: ::Integer
|
|
770
|
+
# @return [Integer]
|
|
771
|
+
# @see RecycleRing
|
|
772
|
+
def recycle_ring: () -> ::Integer
|
|
773
|
+
|
|
774
|
+
# @rbs return: ::Integer
|
|
775
|
+
# @return [Integer]
|
|
776
|
+
# @see RecycleRingFull
|
|
777
|
+
def recycle_ring_full: () -> ::Integer
|
|
778
|
+
|
|
779
|
+
# @rbs return: ::Integer
|
|
780
|
+
# @return [Integer]
|
|
781
|
+
# @see RecycleReleasedRefcnt
|
|
782
|
+
def recycle_released_refcnt: () -> ::Integer
|
|
783
|
+
|
|
784
|
+
# Looks up Attribute class by name.
|
|
785
|
+
# @rbs name: Symbol
|
|
786
|
+
# @rbs return: Attribute
|
|
787
|
+
# @param [Symbol] name
|
|
788
|
+
# @return [Attribute]
|
|
789
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
790
|
+
|
|
791
|
+
# Looks up Attribute class by type value.
|
|
792
|
+
# @rbs type: Integer
|
|
793
|
+
# @rbs return: Attribute
|
|
794
|
+
# @param [Integer] type
|
|
795
|
+
# @return [Attribute]
|
|
796
|
+
def self.by_type: (Integer type) -> Attribute
|
|
797
|
+
end
|
|
798
|
+
|
|
799
|
+
class Napi < ::Nl::AttributeSet
|
|
800
|
+
# Abstract class
|
|
801
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
802
|
+
end
|
|
803
|
+
|
|
804
|
+
# ifindex of the netdevice to which NAPI instance belongs.
|
|
805
|
+
class Ifindex < Attribute
|
|
806
|
+
TYPE: ::Integer
|
|
807
|
+
|
|
808
|
+
NAME: ::Symbol
|
|
809
|
+
|
|
810
|
+
# @private
|
|
811
|
+
ORDER: ::Integer
|
|
812
|
+
|
|
813
|
+
# @private
|
|
814
|
+
DATATYPE: untyped
|
|
815
|
+
end
|
|
816
|
+
|
|
817
|
+
# ID of the NAPI instance.
|
|
818
|
+
class Id < Attribute
|
|
819
|
+
TYPE: ::Integer
|
|
820
|
+
|
|
821
|
+
NAME: ::Symbol
|
|
822
|
+
|
|
823
|
+
# @private
|
|
824
|
+
ORDER: ::Integer
|
|
825
|
+
|
|
826
|
+
# @private
|
|
827
|
+
DATATYPE: untyped
|
|
828
|
+
end
|
|
829
|
+
|
|
830
|
+
# The associated interrupt vector number for the napi
|
|
831
|
+
class Irq < Attribute
|
|
832
|
+
TYPE: ::Integer
|
|
833
|
+
|
|
834
|
+
NAME: ::Symbol
|
|
835
|
+
|
|
836
|
+
# @private
|
|
837
|
+
ORDER: ::Integer
|
|
838
|
+
|
|
839
|
+
# @private
|
|
840
|
+
DATATYPE: untyped
|
|
841
|
+
end
|
|
842
|
+
|
|
843
|
+
# PID of the napi thread, if NAPI is configured to operate in threaded mode. If NAPI is not in threaded mode (i.e. uses normal softirq context), the attribute will be absent.
|
|
844
|
+
class Pid < Attribute
|
|
845
|
+
TYPE: ::Integer
|
|
846
|
+
|
|
847
|
+
NAME: ::Symbol
|
|
848
|
+
|
|
849
|
+
# @private
|
|
850
|
+
ORDER: ::Integer
|
|
851
|
+
|
|
852
|
+
# @private
|
|
853
|
+
DATATYPE: untyped
|
|
854
|
+
end
|
|
855
|
+
|
|
856
|
+
# The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
857
|
+
class DeferHardIrqs < Attribute
|
|
858
|
+
TYPE: ::Integer
|
|
859
|
+
|
|
860
|
+
NAME: ::Symbol
|
|
861
|
+
|
|
862
|
+
# @private
|
|
863
|
+
ORDER: ::Integer
|
|
864
|
+
|
|
865
|
+
# @private
|
|
866
|
+
DATATYPE: untyped
|
|
867
|
+
end
|
|
868
|
+
|
|
869
|
+
# The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
870
|
+
class GroFlushTimeout < Attribute
|
|
871
|
+
TYPE: ::Integer
|
|
872
|
+
|
|
873
|
+
NAME: ::Symbol
|
|
874
|
+
|
|
875
|
+
# @private
|
|
876
|
+
ORDER: ::Integer
|
|
877
|
+
|
|
878
|
+
# @private
|
|
879
|
+
DATATYPE: untyped
|
|
880
|
+
end
|
|
881
|
+
|
|
882
|
+
# The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
883
|
+
class IrqSuspendTimeout < Attribute
|
|
884
|
+
TYPE: ::Integer
|
|
885
|
+
|
|
886
|
+
NAME: ::Symbol
|
|
887
|
+
|
|
888
|
+
# @private
|
|
889
|
+
ORDER: ::Integer
|
|
890
|
+
|
|
891
|
+
# @private
|
|
892
|
+
DATATYPE: untyped
|
|
893
|
+
end
|
|
894
|
+
|
|
895
|
+
# Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
896
|
+
#
|
|
897
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
898
|
+
class Threaded < Attribute
|
|
899
|
+
TYPE: ::Integer
|
|
900
|
+
|
|
901
|
+
NAME: ::Symbol
|
|
902
|
+
|
|
903
|
+
# @private
|
|
904
|
+
ORDER: ::Integer
|
|
905
|
+
|
|
906
|
+
# @private
|
|
907
|
+
DATATYPE: untyped
|
|
908
|
+
end
|
|
909
|
+
|
|
910
|
+
# @private
|
|
911
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
912
|
+
|
|
913
|
+
# @private
|
|
914
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
915
|
+
|
|
916
|
+
# ifindex of the netdevice to which NAPI instance belongs.
|
|
917
|
+
# @rbs return: ::Integer
|
|
918
|
+
# @return [Integer]
|
|
919
|
+
# @see Ifindex
|
|
920
|
+
def ifindex: () -> ::Integer
|
|
921
|
+
|
|
922
|
+
# ID of the NAPI instance.
|
|
923
|
+
# @rbs return: ::Integer
|
|
924
|
+
# @return [Integer]
|
|
925
|
+
# @see Id
|
|
926
|
+
def id: () -> ::Integer
|
|
927
|
+
|
|
928
|
+
# The associated interrupt vector number for the napi
|
|
929
|
+
# @rbs return: ::Integer
|
|
930
|
+
# @return [Integer]
|
|
931
|
+
# @see Irq
|
|
932
|
+
def irq: () -> ::Integer
|
|
933
|
+
|
|
934
|
+
# PID of the napi thread, if NAPI is configured to operate in threaded mode. If NAPI is not in threaded mode (i.e. uses normal softirq context), the attribute will be absent.
|
|
935
|
+
# @rbs return: ::Integer
|
|
936
|
+
# @return [Integer]
|
|
937
|
+
# @see Pid
|
|
938
|
+
def pid: () -> ::Integer
|
|
939
|
+
|
|
940
|
+
# The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
941
|
+
# @rbs return: ::Integer
|
|
942
|
+
# @return [Integer]
|
|
943
|
+
# @see DeferHardIrqs
|
|
944
|
+
def defer_hard_irqs: () -> ::Integer
|
|
945
|
+
|
|
946
|
+
# The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
947
|
+
# @rbs return: ::Integer
|
|
948
|
+
# @return [Integer]
|
|
949
|
+
# @see GroFlushTimeout
|
|
950
|
+
def gro_flush_timeout: () -> ::Integer
|
|
951
|
+
|
|
952
|
+
# The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
953
|
+
# @rbs return: ::Integer
|
|
954
|
+
# @return [Integer]
|
|
955
|
+
# @see IrqSuspendTimeout
|
|
956
|
+
def irq_suspend_timeout: () -> ::Integer
|
|
957
|
+
|
|
958
|
+
# Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
959
|
+
#
|
|
960
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
961
|
+
# @rbs return: ::Integer
|
|
962
|
+
# @return [Integer]
|
|
963
|
+
# @see Threaded
|
|
964
|
+
def threaded: () -> ::Integer
|
|
965
|
+
|
|
966
|
+
# Looks up Attribute class by name.
|
|
967
|
+
# @rbs name: Symbol
|
|
968
|
+
# @rbs return: Attribute
|
|
969
|
+
# @param [Symbol] name
|
|
970
|
+
# @return [Attribute]
|
|
971
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
972
|
+
|
|
973
|
+
# Looks up Attribute class by type value.
|
|
974
|
+
# @rbs type: Integer
|
|
975
|
+
# @rbs return: Attribute
|
|
976
|
+
# @param [Integer] type
|
|
977
|
+
# @return [Attribute]
|
|
978
|
+
def self.by_type: (Integer type) -> Attribute
|
|
979
|
+
end
|
|
980
|
+
|
|
981
|
+
class XskInfo < ::Nl::AttributeSet
|
|
982
|
+
# Abstract class
|
|
983
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
984
|
+
end
|
|
985
|
+
|
|
986
|
+
# @private
|
|
987
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
988
|
+
|
|
989
|
+
# @private
|
|
990
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
991
|
+
|
|
992
|
+
# Looks up Attribute class by name.
|
|
993
|
+
# @rbs name: Symbol
|
|
994
|
+
# @rbs return: Attribute
|
|
995
|
+
# @param [Symbol] name
|
|
996
|
+
# @return [Attribute]
|
|
997
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
998
|
+
|
|
999
|
+
# Looks up Attribute class by type value.
|
|
1000
|
+
# @rbs type: Integer
|
|
1001
|
+
# @rbs return: Attribute
|
|
1002
|
+
# @param [Integer] type
|
|
1003
|
+
# @return [Attribute]
|
|
1004
|
+
def self.by_type: (Integer type) -> Attribute
|
|
1005
|
+
end
|
|
1006
|
+
|
|
1007
|
+
class Queue < ::Nl::AttributeSet
|
|
1008
|
+
# Abstract class
|
|
1009
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
1010
|
+
end
|
|
1011
|
+
|
|
1012
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
1013
|
+
class Id < Attribute
|
|
1014
|
+
TYPE: ::Integer
|
|
1015
|
+
|
|
1016
|
+
NAME: ::Symbol
|
|
1017
|
+
|
|
1018
|
+
# @private
|
|
1019
|
+
ORDER: ::Integer
|
|
1020
|
+
|
|
1021
|
+
# @private
|
|
1022
|
+
DATATYPE: untyped
|
|
1023
|
+
end
|
|
1024
|
+
|
|
1025
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
1026
|
+
class Ifindex < Attribute
|
|
1027
|
+
TYPE: ::Integer
|
|
1028
|
+
|
|
1029
|
+
NAME: ::Symbol
|
|
1030
|
+
|
|
1031
|
+
# @private
|
|
1032
|
+
ORDER: ::Integer
|
|
1033
|
+
|
|
1034
|
+
# @private
|
|
1035
|
+
DATATYPE: untyped
|
|
1036
|
+
end
|
|
1037
|
+
|
|
1038
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
1039
|
+
#
|
|
1040
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1041
|
+
class Type < Attribute
|
|
1042
|
+
TYPE: ::Integer
|
|
1043
|
+
|
|
1044
|
+
NAME: ::Symbol
|
|
1045
|
+
|
|
1046
|
+
# @private
|
|
1047
|
+
ORDER: ::Integer
|
|
1048
|
+
|
|
1049
|
+
# @private
|
|
1050
|
+
DATATYPE: untyped
|
|
1051
|
+
end
|
|
1052
|
+
|
|
1053
|
+
# ID of the NAPI instance which services this queue.
|
|
1054
|
+
class NapiId < Attribute
|
|
1055
|
+
TYPE: ::Integer
|
|
1056
|
+
|
|
1057
|
+
NAME: ::Symbol
|
|
1058
|
+
|
|
1059
|
+
# @private
|
|
1060
|
+
ORDER: ::Integer
|
|
1061
|
+
|
|
1062
|
+
# @private
|
|
1063
|
+
DATATYPE: untyped
|
|
1064
|
+
end
|
|
1065
|
+
|
|
1066
|
+
# ID of the dmabuf attached to this queue, if any.
|
|
1067
|
+
class Dmabuf < Attribute
|
|
1068
|
+
TYPE: ::Integer
|
|
1069
|
+
|
|
1070
|
+
NAME: ::Symbol
|
|
1071
|
+
|
|
1072
|
+
# @private
|
|
1073
|
+
ORDER: ::Integer
|
|
1074
|
+
|
|
1075
|
+
# @private
|
|
1076
|
+
DATATYPE: untyped
|
|
1077
|
+
end
|
|
1078
|
+
|
|
1079
|
+
# io_uring memory provider information.
|
|
1080
|
+
class IoUring < Attribute
|
|
1081
|
+
TYPE: ::Integer
|
|
1082
|
+
|
|
1083
|
+
NAME: ::Symbol
|
|
1084
|
+
|
|
1085
|
+
# @private
|
|
1086
|
+
ORDER: ::Integer
|
|
1087
|
+
end
|
|
1088
|
+
|
|
1089
|
+
# XSK information for this queue, if any.
|
|
1090
|
+
class Xsk < Attribute
|
|
1091
|
+
TYPE: ::Integer
|
|
1092
|
+
|
|
1093
|
+
NAME: ::Symbol
|
|
1094
|
+
|
|
1095
|
+
# @private
|
|
1096
|
+
ORDER: ::Integer
|
|
1097
|
+
end
|
|
1098
|
+
|
|
1099
|
+
# A queue from a virtual device can have a lease which refers to
|
|
1100
|
+
# another queue from a physical device. This is useful for memory
|
|
1101
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
1102
|
+
# to allow applications to bind against virtual devices in containers.
|
|
1103
|
+
class Lease < Attribute
|
|
1104
|
+
TYPE: ::Integer
|
|
1105
|
+
|
|
1106
|
+
NAME: ::Symbol
|
|
1107
|
+
|
|
1108
|
+
# @private
|
|
1109
|
+
ORDER: ::Integer
|
|
1110
|
+
end
|
|
1111
|
+
|
|
1112
|
+
# @private
|
|
1113
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
1114
|
+
|
|
1115
|
+
# @private
|
|
1116
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
1117
|
+
|
|
1118
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
1119
|
+
# @rbs return: ::Integer
|
|
1120
|
+
# @return [Integer]
|
|
1121
|
+
# @see Id
|
|
1122
|
+
def id: () -> ::Integer
|
|
1123
|
+
|
|
1124
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
1125
|
+
# @rbs return: ::Integer
|
|
1126
|
+
# @return [Integer]
|
|
1127
|
+
# @see Ifindex
|
|
1128
|
+
def ifindex: () -> ::Integer
|
|
1129
|
+
|
|
1130
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
1131
|
+
#
|
|
1132
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1133
|
+
# @rbs return: ::Integer
|
|
1134
|
+
# @return [Integer]
|
|
1135
|
+
# @see Type
|
|
1136
|
+
def type: () -> ::Integer
|
|
1137
|
+
|
|
1138
|
+
# ID of the NAPI instance which services this queue.
|
|
1139
|
+
# @rbs return: ::Integer
|
|
1140
|
+
# @return [Integer]
|
|
1141
|
+
# @see NapiId
|
|
1142
|
+
def napi_id: () -> ::Integer
|
|
1143
|
+
|
|
1144
|
+
# ID of the dmabuf attached to this queue, if any.
|
|
1145
|
+
# @rbs return: ::Integer
|
|
1146
|
+
# @return [Integer]
|
|
1147
|
+
# @see Dmabuf
|
|
1148
|
+
def dmabuf: () -> ::Integer
|
|
1149
|
+
|
|
1150
|
+
# io_uring memory provider information.
|
|
1151
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
1152
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
1153
|
+
# @see IoUring
|
|
1154
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
1155
|
+
|
|
1156
|
+
# XSK information for this queue, if any.
|
|
1157
|
+
# @rbs return: AttributeSets::XskInfo
|
|
1158
|
+
# @return [AttributeSets::XskInfo]
|
|
1159
|
+
# @see Xsk
|
|
1160
|
+
def xsk: () -> AttributeSets::XskInfo
|
|
1161
|
+
|
|
1162
|
+
# A queue from a virtual device can have a lease which refers to
|
|
1163
|
+
# another queue from a physical device. This is useful for memory
|
|
1164
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
1165
|
+
# to allow applications to bind against virtual devices in containers.
|
|
1166
|
+
# @rbs return: AttributeSets::Lease
|
|
1167
|
+
# @return [AttributeSets::Lease]
|
|
1168
|
+
# @see Lease
|
|
1169
|
+
def lease: () -> AttributeSets::Lease
|
|
1170
|
+
|
|
1171
|
+
# Looks up Attribute class by name.
|
|
1172
|
+
# @rbs name: Symbol
|
|
1173
|
+
# @rbs return: Attribute
|
|
1174
|
+
# @param [Symbol] name
|
|
1175
|
+
# @return [Attribute]
|
|
1176
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
1177
|
+
|
|
1178
|
+
# Looks up Attribute class by type value.
|
|
1179
|
+
# @rbs type: Integer
|
|
1180
|
+
# @rbs return: Attribute
|
|
1181
|
+
# @param [Integer] type
|
|
1182
|
+
# @return [Attribute]
|
|
1183
|
+
def self.by_type: (Integer type) -> Attribute
|
|
1184
|
+
end
|
|
1185
|
+
|
|
1186
|
+
# Get device statistics, scoped to a device or a queue.
|
|
1187
|
+
# These statistics extend (and partially duplicate) statistics available
|
|
1188
|
+
# in struct rtnl_link_stats64.
|
|
1189
|
+
# Value of the `scope` attribute determines how statistics are
|
|
1190
|
+
# aggregated. When aggregated for the entire device the statistics
|
|
1191
|
+
# represent the total number of events since last explicit reset of
|
|
1192
|
+
# the device (i.e. not a reconfiguration like changing queue count).
|
|
1193
|
+
# When reported per-queue, however, the statistics may not add
|
|
1194
|
+
# up to the total number of events, will only be reported for currently
|
|
1195
|
+
# active objects, and will likely report the number of events since last
|
|
1196
|
+
# reconfiguration.
|
|
1197
|
+
class Qstats < ::Nl::AttributeSet
|
|
1198
|
+
# Abstract class
|
|
1199
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
1200
|
+
end
|
|
1201
|
+
|
|
1202
|
+
# ifindex of the netdevice to which stats belong.
|
|
1203
|
+
class Ifindex < Attribute
|
|
1204
|
+
TYPE: ::Integer
|
|
1205
|
+
|
|
1206
|
+
NAME: ::Symbol
|
|
1207
|
+
|
|
1208
|
+
# @private
|
|
1209
|
+
ORDER: ::Integer
|
|
1210
|
+
|
|
1211
|
+
# @private
|
|
1212
|
+
DATATYPE: untyped
|
|
1213
|
+
end
|
|
1214
|
+
|
|
1215
|
+
# Queue type as rx, tx, for queue-id.
|
|
1216
|
+
#
|
|
1217
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1218
|
+
class QueueType < Attribute
|
|
1219
|
+
TYPE: ::Integer
|
|
1220
|
+
|
|
1221
|
+
NAME: ::Symbol
|
|
1222
|
+
|
|
1223
|
+
# @private
|
|
1224
|
+
ORDER: ::Integer
|
|
1225
|
+
|
|
1226
|
+
# @private
|
|
1227
|
+
DATATYPE: untyped
|
|
1228
|
+
end
|
|
1229
|
+
|
|
1230
|
+
# Queue ID, if stats are scoped to a single queue instance.
|
|
1231
|
+
class QueueId < Attribute
|
|
1232
|
+
TYPE: ::Integer
|
|
1233
|
+
|
|
1234
|
+
NAME: ::Symbol
|
|
1235
|
+
|
|
1236
|
+
# @private
|
|
1237
|
+
ORDER: ::Integer
|
|
1238
|
+
|
|
1239
|
+
# @private
|
|
1240
|
+
DATATYPE: untyped
|
|
1241
|
+
end
|
|
1242
|
+
|
|
1243
|
+
# What object type should be used to iterate over the stats.
|
|
1244
|
+
#
|
|
1245
|
+
#
|
|
1246
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
1247
|
+
class Scope < Attribute
|
|
1248
|
+
TYPE: ::Integer
|
|
1249
|
+
|
|
1250
|
+
NAME: ::Symbol
|
|
1251
|
+
|
|
1252
|
+
# @private
|
|
1253
|
+
ORDER: ::Integer
|
|
1254
|
+
|
|
1255
|
+
# @private
|
|
1256
|
+
DATATYPE: untyped
|
|
1257
|
+
end
|
|
1258
|
+
|
|
1259
|
+
# Number of wire packets successfully received and passed to the stack.
|
|
1260
|
+
# For drivers supporting XDP, XDP is considered the first layer
|
|
1261
|
+
# of the stack, so packets consumed by XDP are still counted here.
|
|
1262
|
+
class RxPackets < Attribute
|
|
1263
|
+
TYPE: ::Integer
|
|
1264
|
+
|
|
1265
|
+
NAME: ::Symbol
|
|
1266
|
+
|
|
1267
|
+
# @private
|
|
1268
|
+
ORDER: ::Integer
|
|
1269
|
+
|
|
1270
|
+
# @private
|
|
1271
|
+
DATATYPE: untyped
|
|
1272
|
+
end
|
|
1273
|
+
|
|
1274
|
+
# Successfully received bytes, see `rx-packets`.
|
|
1275
|
+
class RxBytes < Attribute
|
|
1276
|
+
TYPE: ::Integer
|
|
1277
|
+
|
|
1278
|
+
NAME: ::Symbol
|
|
1279
|
+
|
|
1280
|
+
# @private
|
|
1281
|
+
ORDER: ::Integer
|
|
1282
|
+
|
|
1283
|
+
# @private
|
|
1284
|
+
DATATYPE: untyped
|
|
1285
|
+
end
|
|
1286
|
+
|
|
1287
|
+
# Number of wire packets successfully sent. Packet is considered to be
|
|
1288
|
+
# successfully sent once it is in device memory (usually this means
|
|
1289
|
+
# the device has issued a DMA completion for the packet).
|
|
1290
|
+
class TxPackets < Attribute
|
|
1291
|
+
TYPE: ::Integer
|
|
1292
|
+
|
|
1293
|
+
NAME: ::Symbol
|
|
1294
|
+
|
|
1295
|
+
# @private
|
|
1296
|
+
ORDER: ::Integer
|
|
1297
|
+
|
|
1298
|
+
# @private
|
|
1299
|
+
DATATYPE: untyped
|
|
1300
|
+
end
|
|
1301
|
+
|
|
1302
|
+
# Successfully sent bytes, see `tx-packets`.
|
|
1303
|
+
class TxBytes < Attribute
|
|
1304
|
+
TYPE: ::Integer
|
|
1305
|
+
|
|
1306
|
+
NAME: ::Symbol
|
|
1307
|
+
|
|
1308
|
+
# @private
|
|
1309
|
+
ORDER: ::Integer
|
|
1310
|
+
|
|
1311
|
+
# @private
|
|
1312
|
+
DATATYPE: untyped
|
|
1313
|
+
end
|
|
1314
|
+
|
|
1315
|
+
# Number of times skb or buffer allocation failed on the Rx datapath.
|
|
1316
|
+
# Allocation failure may, or may not result in a packet drop, depending
|
|
1317
|
+
# on driver implementation and whether system recovers quickly.
|
|
1318
|
+
class RxAllocFail < Attribute
|
|
1319
|
+
TYPE: ::Integer
|
|
1320
|
+
|
|
1321
|
+
NAME: ::Symbol
|
|
1322
|
+
|
|
1323
|
+
# @private
|
|
1324
|
+
ORDER: ::Integer
|
|
1325
|
+
|
|
1326
|
+
# @private
|
|
1327
|
+
DATATYPE: untyped
|
|
1328
|
+
end
|
|
1329
|
+
|
|
1330
|
+
# Number of all packets which entered the device, but never left it,
|
|
1331
|
+
# including but not limited to: packets dropped due to lack of buffer
|
|
1332
|
+
# space, processing errors, explicit or implicit policies and packet
|
|
1333
|
+
# filters.
|
|
1334
|
+
class RxHwDrops < Attribute
|
|
1335
|
+
TYPE: ::Integer
|
|
1336
|
+
|
|
1337
|
+
NAME: ::Symbol
|
|
1338
|
+
|
|
1339
|
+
# @private
|
|
1340
|
+
ORDER: ::Integer
|
|
1341
|
+
|
|
1342
|
+
# @private
|
|
1343
|
+
DATATYPE: untyped
|
|
1344
|
+
end
|
|
1345
|
+
|
|
1346
|
+
# Number of packets dropped due to transient lack of resources, such as
|
|
1347
|
+
# buffer space, host descriptors etc.
|
|
1348
|
+
class RxHwDropOverruns < Attribute
|
|
1349
|
+
TYPE: ::Integer
|
|
1350
|
+
|
|
1351
|
+
NAME: ::Symbol
|
|
1352
|
+
|
|
1353
|
+
# @private
|
|
1354
|
+
ORDER: ::Integer
|
|
1355
|
+
|
|
1356
|
+
# @private
|
|
1357
|
+
DATATYPE: untyped
|
|
1358
|
+
end
|
|
1359
|
+
|
|
1360
|
+
# Number of packets that were marked as CHECKSUM_COMPLETE.
|
|
1361
|
+
class RxCsumComplete < Attribute
|
|
1362
|
+
TYPE: ::Integer
|
|
1363
|
+
|
|
1364
|
+
NAME: ::Symbol
|
|
1365
|
+
|
|
1366
|
+
# @private
|
|
1367
|
+
ORDER: ::Integer
|
|
1368
|
+
|
|
1369
|
+
# @private
|
|
1370
|
+
DATATYPE: untyped
|
|
1371
|
+
end
|
|
1372
|
+
|
|
1373
|
+
# Number of packets that were marked as CHECKSUM_UNNECESSARY.
|
|
1374
|
+
class RxCsumUnnecessary < Attribute
|
|
1375
|
+
TYPE: ::Integer
|
|
1376
|
+
|
|
1377
|
+
NAME: ::Symbol
|
|
1378
|
+
|
|
1379
|
+
# @private
|
|
1380
|
+
ORDER: ::Integer
|
|
1381
|
+
|
|
1382
|
+
# @private
|
|
1383
|
+
DATATYPE: untyped
|
|
1384
|
+
end
|
|
1385
|
+
|
|
1386
|
+
# Number of packets that were not checksummed by device.
|
|
1387
|
+
class RxCsumNone < Attribute
|
|
1388
|
+
TYPE: ::Integer
|
|
1389
|
+
|
|
1390
|
+
NAME: ::Symbol
|
|
1391
|
+
|
|
1392
|
+
# @private
|
|
1393
|
+
ORDER: ::Integer
|
|
1394
|
+
|
|
1395
|
+
# @private
|
|
1396
|
+
DATATYPE: untyped
|
|
1397
|
+
end
|
|
1398
|
+
|
|
1399
|
+
# Number of packets with bad checksum. The packets are not discarded,
|
|
1400
|
+
# but still delivered to the stack.
|
|
1401
|
+
class RxCsumBad < Attribute
|
|
1402
|
+
TYPE: ::Integer
|
|
1403
|
+
|
|
1404
|
+
NAME: ::Symbol
|
|
1405
|
+
|
|
1406
|
+
# @private
|
|
1407
|
+
ORDER: ::Integer
|
|
1408
|
+
|
|
1409
|
+
# @private
|
|
1410
|
+
DATATYPE: untyped
|
|
1411
|
+
end
|
|
1412
|
+
|
|
1413
|
+
# Number of packets that were coalesced from smaller packets by the
|
|
1414
|
+
# device. Counts only packets coalesced with the HW-GRO netdevice
|
|
1415
|
+
# feature, LRO-coalesced packets are not counted.
|
|
1416
|
+
class RxHwGroPackets < Attribute
|
|
1417
|
+
TYPE: ::Integer
|
|
1418
|
+
|
|
1419
|
+
NAME: ::Symbol
|
|
1420
|
+
|
|
1421
|
+
# @private
|
|
1422
|
+
ORDER: ::Integer
|
|
1423
|
+
|
|
1424
|
+
# @private
|
|
1425
|
+
DATATYPE: untyped
|
|
1426
|
+
end
|
|
1427
|
+
|
|
1428
|
+
# See `rx-hw-gro-packets`.
|
|
1429
|
+
class RxHwGroBytes < Attribute
|
|
1430
|
+
TYPE: ::Integer
|
|
1431
|
+
|
|
1432
|
+
NAME: ::Symbol
|
|
1433
|
+
|
|
1434
|
+
# @private
|
|
1435
|
+
ORDER: ::Integer
|
|
1436
|
+
|
|
1437
|
+
# @private
|
|
1438
|
+
DATATYPE: untyped
|
|
1439
|
+
end
|
|
1440
|
+
|
|
1441
|
+
# Number of packets that were coalesced to bigger packetss with the
|
|
1442
|
+
# HW-GRO netdevice feature. LRO-coalesced packets are not counted.
|
|
1443
|
+
class RxHwGroWirePackets < Attribute
|
|
1444
|
+
TYPE: ::Integer
|
|
1445
|
+
|
|
1446
|
+
NAME: ::Symbol
|
|
1447
|
+
|
|
1448
|
+
# @private
|
|
1449
|
+
ORDER: ::Integer
|
|
1450
|
+
|
|
1451
|
+
# @private
|
|
1452
|
+
DATATYPE: untyped
|
|
1453
|
+
end
|
|
1454
|
+
|
|
1455
|
+
# See `rx-hw-gro-wire-packets`.
|
|
1456
|
+
class RxHwGroWireBytes < Attribute
|
|
1457
|
+
TYPE: ::Integer
|
|
1458
|
+
|
|
1459
|
+
NAME: ::Symbol
|
|
1460
|
+
|
|
1461
|
+
# @private
|
|
1462
|
+
ORDER: ::Integer
|
|
1463
|
+
|
|
1464
|
+
# @private
|
|
1465
|
+
DATATYPE: untyped
|
|
1466
|
+
end
|
|
1467
|
+
|
|
1468
|
+
# Number of the packets dropped by the device due to the received
|
|
1469
|
+
# packets bitrate exceeding the device rate limit.
|
|
1470
|
+
class RxHwDropRatelimits < Attribute
|
|
1471
|
+
TYPE: ::Integer
|
|
1472
|
+
|
|
1473
|
+
NAME: ::Symbol
|
|
1474
|
+
|
|
1475
|
+
# @private
|
|
1476
|
+
ORDER: ::Integer
|
|
1477
|
+
|
|
1478
|
+
# @private
|
|
1479
|
+
DATATYPE: untyped
|
|
1480
|
+
end
|
|
1481
|
+
|
|
1482
|
+
# Number of packets that arrived at the device but never left it,
|
|
1483
|
+
# encompassing packets dropped for reasons such as processing errors, as
|
|
1484
|
+
# well as those affected by explicitly defined policies and packet
|
|
1485
|
+
# filtering criteria.
|
|
1486
|
+
class TxHwDrops < Attribute
|
|
1487
|
+
TYPE: ::Integer
|
|
1488
|
+
|
|
1489
|
+
NAME: ::Symbol
|
|
1490
|
+
|
|
1491
|
+
# @private
|
|
1492
|
+
ORDER: ::Integer
|
|
1493
|
+
|
|
1494
|
+
# @private
|
|
1495
|
+
DATATYPE: untyped
|
|
1496
|
+
end
|
|
1497
|
+
|
|
1498
|
+
# Number of packets dropped because they were invalid or malformed.
|
|
1499
|
+
class TxHwDropErrors < Attribute
|
|
1500
|
+
TYPE: ::Integer
|
|
1501
|
+
|
|
1502
|
+
NAME: ::Symbol
|
|
1503
|
+
|
|
1504
|
+
# @private
|
|
1505
|
+
ORDER: ::Integer
|
|
1506
|
+
|
|
1507
|
+
# @private
|
|
1508
|
+
DATATYPE: untyped
|
|
1509
|
+
end
|
|
1510
|
+
|
|
1511
|
+
# Number of packets that did not require the device to calculate the
|
|
1512
|
+
# checksum.
|
|
1513
|
+
class TxCsumNone < Attribute
|
|
1514
|
+
TYPE: ::Integer
|
|
1515
|
+
|
|
1516
|
+
NAME: ::Symbol
|
|
1517
|
+
|
|
1518
|
+
# @private
|
|
1519
|
+
ORDER: ::Integer
|
|
1520
|
+
|
|
1521
|
+
# @private
|
|
1522
|
+
DATATYPE: untyped
|
|
1523
|
+
end
|
|
1524
|
+
|
|
1525
|
+
# Number of packets that required the device to calculate the checksum.
|
|
1526
|
+
# This counter includes the number of GSO wire packets for which device
|
|
1527
|
+
# calculated the L4 checksum.
|
|
1528
|
+
class TxNeedsCsum < Attribute
|
|
1529
|
+
TYPE: ::Integer
|
|
1530
|
+
|
|
1531
|
+
NAME: ::Symbol
|
|
1532
|
+
|
|
1533
|
+
# @private
|
|
1534
|
+
ORDER: ::Integer
|
|
1535
|
+
|
|
1536
|
+
# @private
|
|
1537
|
+
DATATYPE: untyped
|
|
1538
|
+
end
|
|
1539
|
+
|
|
1540
|
+
# Number of packets that necessitated segmentation into smaller packets
|
|
1541
|
+
# by the device.
|
|
1542
|
+
class TxHwGsoPackets < Attribute
|
|
1543
|
+
TYPE: ::Integer
|
|
1544
|
+
|
|
1545
|
+
NAME: ::Symbol
|
|
1546
|
+
|
|
1547
|
+
# @private
|
|
1548
|
+
ORDER: ::Integer
|
|
1549
|
+
|
|
1550
|
+
# @private
|
|
1551
|
+
DATATYPE: untyped
|
|
1552
|
+
end
|
|
1553
|
+
|
|
1554
|
+
# See `tx-hw-gso-packets`.
|
|
1555
|
+
class TxHwGsoBytes < Attribute
|
|
1556
|
+
TYPE: ::Integer
|
|
1557
|
+
|
|
1558
|
+
NAME: ::Symbol
|
|
1559
|
+
|
|
1560
|
+
# @private
|
|
1561
|
+
ORDER: ::Integer
|
|
1562
|
+
|
|
1563
|
+
# @private
|
|
1564
|
+
DATATYPE: untyped
|
|
1565
|
+
end
|
|
1566
|
+
|
|
1567
|
+
# Number of wire-sized packets generated by processing
|
|
1568
|
+
# `tx-hw-gso-packets`
|
|
1569
|
+
class TxHwGsoWirePackets < Attribute
|
|
1570
|
+
TYPE: ::Integer
|
|
1571
|
+
|
|
1572
|
+
NAME: ::Symbol
|
|
1573
|
+
|
|
1574
|
+
# @private
|
|
1575
|
+
ORDER: ::Integer
|
|
1576
|
+
|
|
1577
|
+
# @private
|
|
1578
|
+
DATATYPE: untyped
|
|
1579
|
+
end
|
|
1580
|
+
|
|
1581
|
+
# See `tx-hw-gso-wire-packets`.
|
|
1582
|
+
class TxHwGsoWireBytes < Attribute
|
|
1583
|
+
TYPE: ::Integer
|
|
1584
|
+
|
|
1585
|
+
NAME: ::Symbol
|
|
1586
|
+
|
|
1587
|
+
# @private
|
|
1588
|
+
ORDER: ::Integer
|
|
1589
|
+
|
|
1590
|
+
# @private
|
|
1591
|
+
DATATYPE: untyped
|
|
1592
|
+
end
|
|
1593
|
+
|
|
1594
|
+
# Number of the packets dropped by the device due to the transmit
|
|
1595
|
+
# packets bitrate exceeding the device rate limit.
|
|
1596
|
+
class TxHwDropRatelimits < Attribute
|
|
1597
|
+
TYPE: ::Integer
|
|
1598
|
+
|
|
1599
|
+
NAME: ::Symbol
|
|
1600
|
+
|
|
1601
|
+
# @private
|
|
1602
|
+
ORDER: ::Integer
|
|
1603
|
+
|
|
1604
|
+
# @private
|
|
1605
|
+
DATATYPE: untyped
|
|
1606
|
+
end
|
|
1607
|
+
|
|
1608
|
+
# Number of times driver paused accepting new tx packets
|
|
1609
|
+
# from the stack to this queue, because the queue was full.
|
|
1610
|
+
# Note that if BQL is supported and enabled on the device
|
|
1611
|
+
# the networking stack will avoid queuing a lot of data at once.
|
|
1612
|
+
class TxStop < Attribute
|
|
1613
|
+
TYPE: ::Integer
|
|
1614
|
+
|
|
1615
|
+
NAME: ::Symbol
|
|
1616
|
+
|
|
1617
|
+
# @private
|
|
1618
|
+
ORDER: ::Integer
|
|
1619
|
+
|
|
1620
|
+
# @private
|
|
1621
|
+
DATATYPE: untyped
|
|
1622
|
+
end
|
|
1623
|
+
|
|
1624
|
+
# Number of times driver re-started accepting send
|
|
1625
|
+
# requests to this queue from the stack.
|
|
1626
|
+
class TxWake < Attribute
|
|
1627
|
+
TYPE: ::Integer
|
|
1628
|
+
|
|
1629
|
+
NAME: ::Symbol
|
|
1630
|
+
|
|
1631
|
+
# @private
|
|
1632
|
+
ORDER: ::Integer
|
|
1633
|
+
|
|
1634
|
+
# @private
|
|
1635
|
+
DATATYPE: untyped
|
|
1636
|
+
end
|
|
1637
|
+
|
|
1638
|
+
# @private
|
|
1639
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
1640
|
+
|
|
1641
|
+
# @private
|
|
1642
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
1643
|
+
|
|
1644
|
+
# ifindex of the netdevice to which stats belong.
|
|
1645
|
+
# @rbs return: ::Integer
|
|
1646
|
+
# @return [Integer]
|
|
1647
|
+
# @see Ifindex
|
|
1648
|
+
def ifindex: () -> ::Integer
|
|
1649
|
+
|
|
1650
|
+
# Queue type as rx, tx, for queue-id.
|
|
1651
|
+
#
|
|
1652
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1653
|
+
# @rbs return: ::Integer
|
|
1654
|
+
# @return [Integer]
|
|
1655
|
+
# @see QueueType
|
|
1656
|
+
def queue_type: () -> ::Integer
|
|
1657
|
+
|
|
1658
|
+
# Queue ID, if stats are scoped to a single queue instance.
|
|
1659
|
+
# @rbs return: ::Integer
|
|
1660
|
+
# @return [Integer]
|
|
1661
|
+
# @see QueueId
|
|
1662
|
+
def queue_id: () -> ::Integer
|
|
1663
|
+
|
|
1664
|
+
# What object type should be used to iterate over the stats.
|
|
1665
|
+
#
|
|
1666
|
+
#
|
|
1667
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
1668
|
+
# @rbs return: ::Integer
|
|
1669
|
+
# @return [Integer]
|
|
1670
|
+
# @see Scope
|
|
1671
|
+
def scope: () -> ::Integer
|
|
1672
|
+
|
|
1673
|
+
# Number of wire packets successfully received and passed to the stack.
|
|
1674
|
+
# For drivers supporting XDP, XDP is considered the first layer
|
|
1675
|
+
# of the stack, so packets consumed by XDP are still counted here.
|
|
1676
|
+
# @rbs return: ::Integer
|
|
1677
|
+
# @return [Integer]
|
|
1678
|
+
# @see RxPackets
|
|
1679
|
+
def rx_packets: () -> ::Integer
|
|
1680
|
+
|
|
1681
|
+
# Successfully received bytes, see `rx-packets`.
|
|
1682
|
+
# @rbs return: ::Integer
|
|
1683
|
+
# @return [Integer]
|
|
1684
|
+
# @see RxBytes
|
|
1685
|
+
def rx_bytes: () -> ::Integer
|
|
1686
|
+
|
|
1687
|
+
# Number of wire packets successfully sent. Packet is considered to be
|
|
1688
|
+
# successfully sent once it is in device memory (usually this means
|
|
1689
|
+
# the device has issued a DMA completion for the packet).
|
|
1690
|
+
# @rbs return: ::Integer
|
|
1691
|
+
# @return [Integer]
|
|
1692
|
+
# @see TxPackets
|
|
1693
|
+
def tx_packets: () -> ::Integer
|
|
1694
|
+
|
|
1695
|
+
# Successfully sent bytes, see `tx-packets`.
|
|
1696
|
+
# @rbs return: ::Integer
|
|
1697
|
+
# @return [Integer]
|
|
1698
|
+
# @see TxBytes
|
|
1699
|
+
def tx_bytes: () -> ::Integer
|
|
1700
|
+
|
|
1701
|
+
# Number of times skb or buffer allocation failed on the Rx datapath.
|
|
1702
|
+
# Allocation failure may, or may not result in a packet drop, depending
|
|
1703
|
+
# on driver implementation and whether system recovers quickly.
|
|
1704
|
+
# @rbs return: ::Integer
|
|
1705
|
+
# @return [Integer]
|
|
1706
|
+
# @see RxAllocFail
|
|
1707
|
+
def rx_alloc_fail: () -> ::Integer
|
|
1708
|
+
|
|
1709
|
+
# Number of all packets which entered the device, but never left it,
|
|
1710
|
+
# including but not limited to: packets dropped due to lack of buffer
|
|
1711
|
+
# space, processing errors, explicit or implicit policies and packet
|
|
1712
|
+
# filters.
|
|
1713
|
+
# @rbs return: ::Integer
|
|
1714
|
+
# @return [Integer]
|
|
1715
|
+
# @see RxHwDrops
|
|
1716
|
+
def rx_hw_drops: () -> ::Integer
|
|
1717
|
+
|
|
1718
|
+
# Number of packets dropped due to transient lack of resources, such as
|
|
1719
|
+
# buffer space, host descriptors etc.
|
|
1720
|
+
# @rbs return: ::Integer
|
|
1721
|
+
# @return [Integer]
|
|
1722
|
+
# @see RxHwDropOverruns
|
|
1723
|
+
def rx_hw_drop_overruns: () -> ::Integer
|
|
1724
|
+
|
|
1725
|
+
# Number of packets that were marked as CHECKSUM_COMPLETE.
|
|
1726
|
+
# @rbs return: ::Integer
|
|
1727
|
+
# @return [Integer]
|
|
1728
|
+
# @see RxCsumComplete
|
|
1729
|
+
def rx_csum_complete: () -> ::Integer
|
|
1730
|
+
|
|
1731
|
+
# Number of packets that were marked as CHECKSUM_UNNECESSARY.
|
|
1732
|
+
# @rbs return: ::Integer
|
|
1733
|
+
# @return [Integer]
|
|
1734
|
+
# @see RxCsumUnnecessary
|
|
1735
|
+
def rx_csum_unnecessary: () -> ::Integer
|
|
1736
|
+
|
|
1737
|
+
# Number of packets that were not checksummed by device.
|
|
1738
|
+
# @rbs return: ::Integer
|
|
1739
|
+
# @return [Integer]
|
|
1740
|
+
# @see RxCsumNone
|
|
1741
|
+
def rx_csum_none: () -> ::Integer
|
|
1742
|
+
|
|
1743
|
+
# Number of packets with bad checksum. The packets are not discarded,
|
|
1744
|
+
# but still delivered to the stack.
|
|
1745
|
+
# @rbs return: ::Integer
|
|
1746
|
+
# @return [Integer]
|
|
1747
|
+
# @see RxCsumBad
|
|
1748
|
+
def rx_csum_bad: () -> ::Integer
|
|
1749
|
+
|
|
1750
|
+
# Number of packets that were coalesced from smaller packets by the
|
|
1751
|
+
# device. Counts only packets coalesced with the HW-GRO netdevice
|
|
1752
|
+
# feature, LRO-coalesced packets are not counted.
|
|
1753
|
+
# @rbs return: ::Integer
|
|
1754
|
+
# @return [Integer]
|
|
1755
|
+
# @see RxHwGroPackets
|
|
1756
|
+
def rx_hw_gro_packets: () -> ::Integer
|
|
1757
|
+
|
|
1758
|
+
# See `rx-hw-gro-packets`.
|
|
1759
|
+
# @rbs return: ::Integer
|
|
1760
|
+
# @return [Integer]
|
|
1761
|
+
# @see RxHwGroBytes
|
|
1762
|
+
def rx_hw_gro_bytes: () -> ::Integer
|
|
1763
|
+
|
|
1764
|
+
# Number of packets that were coalesced to bigger packetss with the
|
|
1765
|
+
# HW-GRO netdevice feature. LRO-coalesced packets are not counted.
|
|
1766
|
+
# @rbs return: ::Integer
|
|
1767
|
+
# @return [Integer]
|
|
1768
|
+
# @see RxHwGroWirePackets
|
|
1769
|
+
def rx_hw_gro_wire_packets: () -> ::Integer
|
|
1770
|
+
|
|
1771
|
+
# See `rx-hw-gro-wire-packets`.
|
|
1772
|
+
# @rbs return: ::Integer
|
|
1773
|
+
# @return [Integer]
|
|
1774
|
+
# @see RxHwGroWireBytes
|
|
1775
|
+
def rx_hw_gro_wire_bytes: () -> ::Integer
|
|
1776
|
+
|
|
1777
|
+
# Number of the packets dropped by the device due to the received
|
|
1778
|
+
# packets bitrate exceeding the device rate limit.
|
|
1779
|
+
# @rbs return: ::Integer
|
|
1780
|
+
# @return [Integer]
|
|
1781
|
+
# @see RxHwDropRatelimits
|
|
1782
|
+
def rx_hw_drop_ratelimits: () -> ::Integer
|
|
1783
|
+
|
|
1784
|
+
# Number of packets that arrived at the device but never left it,
|
|
1785
|
+
# encompassing packets dropped for reasons such as processing errors, as
|
|
1786
|
+
# well as those affected by explicitly defined policies and packet
|
|
1787
|
+
# filtering criteria.
|
|
1788
|
+
# @rbs return: ::Integer
|
|
1789
|
+
# @return [Integer]
|
|
1790
|
+
# @see TxHwDrops
|
|
1791
|
+
def tx_hw_drops: () -> ::Integer
|
|
1792
|
+
|
|
1793
|
+
# Number of packets dropped because they were invalid or malformed.
|
|
1794
|
+
# @rbs return: ::Integer
|
|
1795
|
+
# @return [Integer]
|
|
1796
|
+
# @see TxHwDropErrors
|
|
1797
|
+
def tx_hw_drop_errors: () -> ::Integer
|
|
1798
|
+
|
|
1799
|
+
# Number of packets that did not require the device to calculate the
|
|
1800
|
+
# checksum.
|
|
1801
|
+
# @rbs return: ::Integer
|
|
1802
|
+
# @return [Integer]
|
|
1803
|
+
# @see TxCsumNone
|
|
1804
|
+
def tx_csum_none: () -> ::Integer
|
|
1805
|
+
|
|
1806
|
+
# Number of packets that required the device to calculate the checksum.
|
|
1807
|
+
# This counter includes the number of GSO wire packets for which device
|
|
1808
|
+
# calculated the L4 checksum.
|
|
1809
|
+
# @rbs return: ::Integer
|
|
1810
|
+
# @return [Integer]
|
|
1811
|
+
# @see TxNeedsCsum
|
|
1812
|
+
def tx_needs_csum: () -> ::Integer
|
|
1813
|
+
|
|
1814
|
+
# Number of packets that necessitated segmentation into smaller packets
|
|
1815
|
+
# by the device.
|
|
1816
|
+
# @rbs return: ::Integer
|
|
1817
|
+
# @return [Integer]
|
|
1818
|
+
# @see TxHwGsoPackets
|
|
1819
|
+
def tx_hw_gso_packets: () -> ::Integer
|
|
1820
|
+
|
|
1821
|
+
# See `tx-hw-gso-packets`.
|
|
1822
|
+
# @rbs return: ::Integer
|
|
1823
|
+
# @return [Integer]
|
|
1824
|
+
# @see TxHwGsoBytes
|
|
1825
|
+
def tx_hw_gso_bytes: () -> ::Integer
|
|
1826
|
+
|
|
1827
|
+
# Number of wire-sized packets generated by processing
|
|
1828
|
+
# `tx-hw-gso-packets`
|
|
1829
|
+
# @rbs return: ::Integer
|
|
1830
|
+
# @return [Integer]
|
|
1831
|
+
# @see TxHwGsoWirePackets
|
|
1832
|
+
def tx_hw_gso_wire_packets: () -> ::Integer
|
|
1833
|
+
|
|
1834
|
+
# See `tx-hw-gso-wire-packets`.
|
|
1835
|
+
# @rbs return: ::Integer
|
|
1836
|
+
# @return [Integer]
|
|
1837
|
+
# @see TxHwGsoWireBytes
|
|
1838
|
+
def tx_hw_gso_wire_bytes: () -> ::Integer
|
|
1839
|
+
|
|
1840
|
+
# Number of the packets dropped by the device due to the transmit
|
|
1841
|
+
# packets bitrate exceeding the device rate limit.
|
|
1842
|
+
# @rbs return: ::Integer
|
|
1843
|
+
# @return [Integer]
|
|
1844
|
+
# @see TxHwDropRatelimits
|
|
1845
|
+
def tx_hw_drop_ratelimits: () -> ::Integer
|
|
1846
|
+
|
|
1847
|
+
# Number of times driver paused accepting new tx packets
|
|
1848
|
+
# from the stack to this queue, because the queue was full.
|
|
1849
|
+
# Note that if BQL is supported and enabled on the device
|
|
1850
|
+
# the networking stack will avoid queuing a lot of data at once.
|
|
1851
|
+
# @rbs return: ::Integer
|
|
1852
|
+
# @return [Integer]
|
|
1853
|
+
# @see TxStop
|
|
1854
|
+
def tx_stop: () -> ::Integer
|
|
1855
|
+
|
|
1856
|
+
# Number of times driver re-started accepting send
|
|
1857
|
+
# requests to this queue from the stack.
|
|
1858
|
+
# @rbs return: ::Integer
|
|
1859
|
+
# @return [Integer]
|
|
1860
|
+
# @see TxWake
|
|
1861
|
+
def tx_wake: () -> ::Integer
|
|
1862
|
+
|
|
1863
|
+
# Looks up Attribute class by name.
|
|
1864
|
+
# @rbs name: Symbol
|
|
1865
|
+
# @rbs return: Attribute
|
|
1866
|
+
# @param [Symbol] name
|
|
1867
|
+
# @return [Attribute]
|
|
1868
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
1869
|
+
|
|
1870
|
+
# Looks up Attribute class by type value.
|
|
1871
|
+
# @rbs type: Integer
|
|
1872
|
+
# @rbs return: Attribute
|
|
1873
|
+
# @param [Integer] type
|
|
1874
|
+
# @return [Attribute]
|
|
1875
|
+
def self.by_type: (Integer type) -> Attribute
|
|
1876
|
+
end
|
|
1877
|
+
|
|
1878
|
+
class QueueId < ::Nl::AttributeSet
|
|
1879
|
+
# Abstract class
|
|
1880
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
1881
|
+
end
|
|
1882
|
+
|
|
1883
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
1884
|
+
class Id < Attribute
|
|
1885
|
+
TYPE: ::Integer
|
|
1886
|
+
|
|
1887
|
+
NAME: ::Symbol
|
|
1888
|
+
|
|
1889
|
+
# @private
|
|
1890
|
+
ORDER: ::Integer
|
|
1891
|
+
|
|
1892
|
+
# @private
|
|
1893
|
+
DATATYPE: untyped
|
|
1894
|
+
end
|
|
1895
|
+
|
|
1896
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
1897
|
+
#
|
|
1898
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1899
|
+
class Type < Attribute
|
|
1900
|
+
TYPE: ::Integer
|
|
1901
|
+
|
|
1902
|
+
NAME: ::Symbol
|
|
1903
|
+
|
|
1904
|
+
# @private
|
|
1905
|
+
ORDER: ::Integer
|
|
1906
|
+
|
|
1907
|
+
# @private
|
|
1908
|
+
DATATYPE: untyped
|
|
1909
|
+
end
|
|
1910
|
+
|
|
1911
|
+
# @private
|
|
1912
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
1913
|
+
|
|
1914
|
+
# @private
|
|
1915
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
1916
|
+
|
|
1917
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
1918
|
+
# @rbs return: ::Integer
|
|
1919
|
+
# @return [Integer]
|
|
1920
|
+
# @see Id
|
|
1921
|
+
def id: () -> ::Integer
|
|
1922
|
+
|
|
1923
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
1924
|
+
#
|
|
1925
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
1926
|
+
# @rbs return: ::Integer
|
|
1927
|
+
# @return [Integer]
|
|
1928
|
+
# @see Type
|
|
1929
|
+
def type: () -> ::Integer
|
|
1930
|
+
|
|
1931
|
+
# Looks up Attribute class by name.
|
|
1932
|
+
# @rbs name: Symbol
|
|
1933
|
+
# @rbs return: Attribute
|
|
1934
|
+
# @param [Symbol] name
|
|
1935
|
+
# @return [Attribute]
|
|
1936
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
1937
|
+
|
|
1938
|
+
# Looks up Attribute class by type value.
|
|
1939
|
+
# @rbs type: Integer
|
|
1940
|
+
# @rbs return: Attribute
|
|
1941
|
+
# @param [Integer] type
|
|
1942
|
+
# @return [Attribute]
|
|
1943
|
+
def self.by_type: (Integer type) -> Attribute
|
|
1944
|
+
end
|
|
1945
|
+
|
|
1946
|
+
class Lease < ::Nl::AttributeSet
|
|
1947
|
+
# Abstract class
|
|
1948
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
1949
|
+
end
|
|
1950
|
+
|
|
1951
|
+
# The netdev ifindex to lease the queue from.
|
|
1952
|
+
class Ifindex < Attribute
|
|
1953
|
+
TYPE: ::Integer
|
|
1954
|
+
|
|
1955
|
+
NAME: ::Symbol
|
|
1956
|
+
|
|
1957
|
+
# @private
|
|
1958
|
+
ORDER: ::Integer
|
|
1959
|
+
|
|
1960
|
+
# @private
|
|
1961
|
+
DATATYPE: untyped
|
|
1962
|
+
end
|
|
1963
|
+
|
|
1964
|
+
# The netdev queue to lease from.
|
|
1965
|
+
class Queue < Attribute
|
|
1966
|
+
TYPE: ::Integer
|
|
1967
|
+
|
|
1968
|
+
NAME: ::Symbol
|
|
1969
|
+
|
|
1970
|
+
# @private
|
|
1971
|
+
ORDER: ::Integer
|
|
1972
|
+
end
|
|
1973
|
+
|
|
1974
|
+
# The network namespace id of the netdev.
|
|
1975
|
+
class NetnsId < Attribute
|
|
1976
|
+
TYPE: ::Integer
|
|
1977
|
+
|
|
1978
|
+
NAME: ::Symbol
|
|
1979
|
+
|
|
1980
|
+
# @private
|
|
1981
|
+
ORDER: ::Integer
|
|
1982
|
+
|
|
1983
|
+
# @private
|
|
1984
|
+
DATATYPE: untyped
|
|
1985
|
+
end
|
|
1986
|
+
|
|
1987
|
+
# @private
|
|
1988
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
1989
|
+
|
|
1990
|
+
# @private
|
|
1991
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
1992
|
+
|
|
1993
|
+
# The netdev ifindex to lease the queue from.
|
|
1994
|
+
# @rbs return: ::Integer
|
|
1995
|
+
# @return [Integer]
|
|
1996
|
+
# @see Ifindex
|
|
1997
|
+
def ifindex: () -> ::Integer
|
|
1998
|
+
|
|
1999
|
+
# The netdev queue to lease from.
|
|
2000
|
+
# @rbs return: AttributeSets::QueueId
|
|
2001
|
+
# @return [AttributeSets::QueueId]
|
|
2002
|
+
# @see Queue
|
|
2003
|
+
def queue: () -> AttributeSets::QueueId
|
|
2004
|
+
|
|
2005
|
+
# The network namespace id of the netdev.
|
|
2006
|
+
# @rbs return: ::Integer
|
|
2007
|
+
# @return [Integer]
|
|
2008
|
+
# @see NetnsId
|
|
2009
|
+
def netns_id: () -> ::Integer
|
|
2010
|
+
|
|
2011
|
+
# Looks up Attribute class by name.
|
|
2012
|
+
# @rbs name: Symbol
|
|
2013
|
+
# @rbs return: Attribute
|
|
2014
|
+
# @param [Symbol] name
|
|
2015
|
+
# @return [Attribute]
|
|
2016
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
2017
|
+
|
|
2018
|
+
# Looks up Attribute class by type value.
|
|
2019
|
+
# @rbs type: Integer
|
|
2020
|
+
# @rbs return: Attribute
|
|
2021
|
+
# @param [Integer] type
|
|
2022
|
+
# @return [Attribute]
|
|
2023
|
+
def self.by_type: (Integer type) -> Attribute
|
|
2024
|
+
end
|
|
2025
|
+
|
|
2026
|
+
class Dmabuf < ::Nl::AttributeSet
|
|
2027
|
+
# Abstract class
|
|
2028
|
+
class Attribute < ::Nl::AttributeSet::Attribute
|
|
2029
|
+
end
|
|
2030
|
+
|
|
2031
|
+
# netdev ifindex to bind the dmabuf to.
|
|
2032
|
+
class Ifindex < Attribute
|
|
2033
|
+
TYPE: ::Integer
|
|
2034
|
+
|
|
2035
|
+
NAME: ::Symbol
|
|
2036
|
+
|
|
2037
|
+
# @private
|
|
2038
|
+
ORDER: ::Integer
|
|
2039
|
+
|
|
2040
|
+
# @private
|
|
2041
|
+
DATATYPE: untyped
|
|
2042
|
+
end
|
|
2043
|
+
|
|
2044
|
+
# receive queues to bind the dmabuf to.
|
|
2045
|
+
class Queues < Attribute
|
|
2046
|
+
TYPE: ::Integer
|
|
2047
|
+
|
|
2048
|
+
NAME: ::Symbol
|
|
2049
|
+
|
|
2050
|
+
# @private
|
|
2051
|
+
MULTI: bool
|
|
2052
|
+
|
|
2053
|
+
# @private
|
|
2054
|
+
ORDER: ::Integer
|
|
2055
|
+
end
|
|
2056
|
+
|
|
2057
|
+
# dmabuf file descriptor to bind.
|
|
2058
|
+
class Fd < Attribute
|
|
2059
|
+
TYPE: ::Integer
|
|
2060
|
+
|
|
2061
|
+
NAME: ::Symbol
|
|
2062
|
+
|
|
2063
|
+
# @private
|
|
2064
|
+
ORDER: ::Integer
|
|
2065
|
+
|
|
2066
|
+
# @private
|
|
2067
|
+
DATATYPE: untyped
|
|
2068
|
+
end
|
|
2069
|
+
|
|
2070
|
+
# id of the dmabuf binding
|
|
2071
|
+
class Id < Attribute
|
|
2072
|
+
TYPE: ::Integer
|
|
2073
|
+
|
|
2074
|
+
NAME: ::Symbol
|
|
2075
|
+
|
|
2076
|
+
# @private
|
|
2077
|
+
ORDER: ::Integer
|
|
2078
|
+
|
|
2079
|
+
# @private
|
|
2080
|
+
DATATYPE: untyped
|
|
2081
|
+
end
|
|
2082
|
+
|
|
2083
|
+
# @private
|
|
2084
|
+
BY_NAME: Hash[::Symbol, Attribute]
|
|
2085
|
+
|
|
2086
|
+
# @private
|
|
2087
|
+
BY_TYPE: Hash[::Integer, Attribute]
|
|
2088
|
+
|
|
2089
|
+
# netdev ifindex to bind the dmabuf to.
|
|
2090
|
+
# @rbs return: ::Integer
|
|
2091
|
+
# @return [Integer]
|
|
2092
|
+
# @see Ifindex
|
|
2093
|
+
def ifindex: () -> ::Integer
|
|
2094
|
+
|
|
2095
|
+
# receive queues to bind the dmabuf to.
|
|
2096
|
+
# @rbs return: ::Array[AttributeSets::QueueId]
|
|
2097
|
+
# @return [Array<AttributeSets::QueueId>]
|
|
2098
|
+
# @see Queues
|
|
2099
|
+
def queues: () -> ::Array[AttributeSets::QueueId]
|
|
2100
|
+
|
|
2101
|
+
# dmabuf file descriptor to bind.
|
|
2102
|
+
# @rbs return: ::Integer
|
|
2103
|
+
# @return [Integer]
|
|
2104
|
+
# @see Fd
|
|
2105
|
+
def fd: () -> ::Integer
|
|
2106
|
+
|
|
2107
|
+
# id of the dmabuf binding
|
|
2108
|
+
# @rbs return: ::Integer
|
|
2109
|
+
# @return [Integer]
|
|
2110
|
+
# @see Id
|
|
2111
|
+
def id: () -> ::Integer
|
|
2112
|
+
|
|
2113
|
+
# Looks up Attribute class by name.
|
|
2114
|
+
# @rbs name: Symbol
|
|
2115
|
+
# @rbs return: Attribute
|
|
2116
|
+
# @param [Symbol] name
|
|
2117
|
+
# @return [Attribute]
|
|
2118
|
+
def self.by_name: (Symbol name) -> Attribute
|
|
2119
|
+
|
|
2120
|
+
# Looks up Attribute class by type value.
|
|
2121
|
+
# @rbs type: Integer
|
|
2122
|
+
# @rbs return: Attribute
|
|
2123
|
+
# @param [Integer] type
|
|
2124
|
+
# @return [Attribute]
|
|
2125
|
+
def self.by_type: (Integer type) -> Attribute
|
|
2126
|
+
end
|
|
2127
|
+
end
|
|
2128
|
+
|
|
2129
|
+
module Messages
|
|
2130
|
+
# Get / dump information about a netdev.
|
|
2131
|
+
class DoDevGetRequest < ::Nl::Genl::Message
|
|
2132
|
+
TYPE: ::Integer
|
|
2133
|
+
|
|
2134
|
+
FIXED_HEADER: untyped
|
|
2135
|
+
|
|
2136
|
+
ATTRIBUTE_SET: untyped
|
|
2137
|
+
|
|
2138
|
+
ATTRIBUTES: untyped
|
|
2139
|
+
|
|
2140
|
+
# netdev ifindex
|
|
2141
|
+
# @rbs return: ::Integer
|
|
2142
|
+
# @return [Integer]
|
|
2143
|
+
# @see AttributeSets::Dev::Ifindex
|
|
2144
|
+
def ifindex: () -> ::Integer
|
|
2145
|
+
end
|
|
2146
|
+
|
|
2147
|
+
# Get / dump information about a netdev.
|
|
2148
|
+
class DoDevGetReply < ::Nl::Genl::Message
|
|
2149
|
+
TYPE: ::Integer
|
|
2150
|
+
|
|
2151
|
+
FIXED_HEADER: untyped
|
|
2152
|
+
|
|
2153
|
+
ATTRIBUTE_SET: untyped
|
|
2154
|
+
|
|
2155
|
+
ATTRIBUTES: untyped
|
|
2156
|
+
|
|
2157
|
+
# netdev ifindex
|
|
2158
|
+
# @rbs return: ::Integer
|
|
2159
|
+
# @return [Integer]
|
|
2160
|
+
# @see AttributeSets::Dev::Ifindex
|
|
2161
|
+
def ifindex: () -> ::Integer
|
|
2162
|
+
|
|
2163
|
+
# Bitmask of enabled xdp-features.
|
|
2164
|
+
#
|
|
2165
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
2166
|
+
# @rbs return: ::Integer
|
|
2167
|
+
# @return [Integer]
|
|
2168
|
+
# @see AttributeSets::Dev::XdpFeatures
|
|
2169
|
+
def xdp_features: () -> ::Integer
|
|
2170
|
+
|
|
2171
|
+
# max fragment count supported by ZC driver
|
|
2172
|
+
# @rbs return: ::Integer
|
|
2173
|
+
# @return [Integer]
|
|
2174
|
+
# @see AttributeSets::Dev::XdpZcMaxSegs
|
|
2175
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
2176
|
+
|
|
2177
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
2178
|
+
#
|
|
2179
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
2180
|
+
# @rbs return: ::Integer
|
|
2181
|
+
# @return [Integer]
|
|
2182
|
+
# @see AttributeSets::Dev::XdpRxMetadataFeatures
|
|
2183
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
2184
|
+
|
|
2185
|
+
# Bitmask of enabled AF_XDP features.
|
|
2186
|
+
#
|
|
2187
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
2188
|
+
# @rbs return: ::Integer
|
|
2189
|
+
# @return [Integer]
|
|
2190
|
+
# @see AttributeSets::Dev::XskFeatures
|
|
2191
|
+
def xsk_features: () -> ::Integer
|
|
2192
|
+
end
|
|
2193
|
+
|
|
2194
|
+
# Get / dump information about a netdev.
|
|
2195
|
+
class DumpDevGetRequest < ::Nl::Genl::Message
|
|
2196
|
+
TYPE: ::Integer
|
|
2197
|
+
|
|
2198
|
+
FIXED_HEADER: untyped
|
|
2199
|
+
|
|
2200
|
+
ATTRIBUTE_SET: untyped
|
|
2201
|
+
|
|
2202
|
+
ATTRIBUTES: untyped
|
|
2203
|
+
end
|
|
2204
|
+
|
|
2205
|
+
# Get / dump information about a netdev.
|
|
2206
|
+
class DumpDevGetReply < ::Nl::Genl::Message
|
|
2207
|
+
TYPE: ::Integer
|
|
2208
|
+
|
|
2209
|
+
FIXED_HEADER: untyped
|
|
2210
|
+
|
|
2211
|
+
ATTRIBUTE_SET: untyped
|
|
2212
|
+
|
|
2213
|
+
ATTRIBUTES: untyped
|
|
2214
|
+
|
|
2215
|
+
# netdev ifindex
|
|
2216
|
+
# @rbs return: ::Integer
|
|
2217
|
+
# @return [Integer]
|
|
2218
|
+
# @see AttributeSets::Dev::Ifindex
|
|
2219
|
+
def ifindex: () -> ::Integer
|
|
2220
|
+
|
|
2221
|
+
# Bitmask of enabled xdp-features.
|
|
2222
|
+
#
|
|
2223
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
2224
|
+
# @rbs return: ::Integer
|
|
2225
|
+
# @return [Integer]
|
|
2226
|
+
# @see AttributeSets::Dev::XdpFeatures
|
|
2227
|
+
def xdp_features: () -> ::Integer
|
|
2228
|
+
|
|
2229
|
+
# max fragment count supported by ZC driver
|
|
2230
|
+
# @rbs return: ::Integer
|
|
2231
|
+
# @return [Integer]
|
|
2232
|
+
# @see AttributeSets::Dev::XdpZcMaxSegs
|
|
2233
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
2234
|
+
|
|
2235
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
2236
|
+
#
|
|
2237
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
2238
|
+
# @rbs return: ::Integer
|
|
2239
|
+
# @return [Integer]
|
|
2240
|
+
# @see AttributeSets::Dev::XdpRxMetadataFeatures
|
|
2241
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
2242
|
+
|
|
2243
|
+
# Bitmask of enabled AF_XDP features.
|
|
2244
|
+
#
|
|
2245
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
2246
|
+
# @rbs return: ::Integer
|
|
2247
|
+
# @return [Integer]
|
|
2248
|
+
# @see AttributeSets::Dev::XskFeatures
|
|
2249
|
+
def xsk_features: () -> ::Integer
|
|
2250
|
+
end
|
|
2251
|
+
|
|
2252
|
+
# Get / dump information about Page Pools.
|
|
2253
|
+
# Only Page Pools associated by the driver with a net_device
|
|
2254
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
2255
|
+
# no longer exists.
|
|
2256
|
+
class DoPagePoolGetRequest < ::Nl::Genl::Message
|
|
2257
|
+
TYPE: ::Integer
|
|
2258
|
+
|
|
2259
|
+
FIXED_HEADER: untyped
|
|
2260
|
+
|
|
2261
|
+
ATTRIBUTE_SET: untyped
|
|
2262
|
+
|
|
2263
|
+
ATTRIBUTES: untyped
|
|
2264
|
+
|
|
2265
|
+
# Unique ID of a Page Pool instance.
|
|
2266
|
+
# @rbs return: ::Integer
|
|
2267
|
+
# @return [Integer]
|
|
2268
|
+
# @see AttributeSets::PagePool::Id
|
|
2269
|
+
def id: () -> ::Integer
|
|
2270
|
+
end
|
|
2271
|
+
|
|
2272
|
+
# Get / dump information about Page Pools.
|
|
2273
|
+
# Only Page Pools associated by the driver with a net_device
|
|
2274
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
2275
|
+
# no longer exists.
|
|
2276
|
+
class DoPagePoolGetReply < ::Nl::Genl::Message
|
|
2277
|
+
TYPE: ::Integer
|
|
2278
|
+
|
|
2279
|
+
FIXED_HEADER: untyped
|
|
2280
|
+
|
|
2281
|
+
ATTRIBUTE_SET: untyped
|
|
2282
|
+
|
|
2283
|
+
ATTRIBUTES: untyped
|
|
2284
|
+
|
|
2285
|
+
# Unique ID of a Page Pool instance.
|
|
2286
|
+
# @rbs return: ::Integer
|
|
2287
|
+
# @return [Integer]
|
|
2288
|
+
# @see AttributeSets::PagePool::Id
|
|
2289
|
+
def id: () -> ::Integer
|
|
2290
|
+
|
|
2291
|
+
# ifindex of the netdev to which the pool belongs.
|
|
2292
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
2293
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
2294
|
+
# because they wait for all memory to be returned).
|
|
2295
|
+
# @rbs return: ::Integer
|
|
2296
|
+
# @return [Integer]
|
|
2297
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
2298
|
+
def ifindex: () -> ::Integer
|
|
2299
|
+
|
|
2300
|
+
# Id of NAPI using this Page Pool instance.
|
|
2301
|
+
# @rbs return: ::Integer
|
|
2302
|
+
# @return [Integer]
|
|
2303
|
+
# @see AttributeSets::PagePool::NapiId
|
|
2304
|
+
def napi_id: () -> ::Integer
|
|
2305
|
+
|
|
2306
|
+
# Number of outstanding references to this page pool (allocated
|
|
2307
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
2308
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
2309
|
+
# ring, the page pool cache, etc.
|
|
2310
|
+
# @rbs return: ::Integer
|
|
2311
|
+
# @return [Integer]
|
|
2312
|
+
# @see AttributeSets::PagePool::Inflight
|
|
2313
|
+
def inflight: () -> ::Integer
|
|
2314
|
+
|
|
2315
|
+
# Amount of memory held by inflight pages.
|
|
2316
|
+
# @rbs return: ::Integer
|
|
2317
|
+
# @return [Integer]
|
|
2318
|
+
# @see AttributeSets::PagePool::InflightMem
|
|
2319
|
+
def inflight_mem: () -> ::Integer
|
|
2320
|
+
|
|
2321
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
2322
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
2323
|
+
# allocate memory.
|
|
2324
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
2325
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
2326
|
+
# "re-attached", they are just waiting to disappear.
|
|
2327
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
2328
|
+
# can still be used to allocate new memory.
|
|
2329
|
+
# @rbs return: ::Integer
|
|
2330
|
+
# @return [Integer]
|
|
2331
|
+
# @see AttributeSets::PagePool::DetachTime
|
|
2332
|
+
def detach_time: () -> ::Integer
|
|
2333
|
+
|
|
2334
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
2335
|
+
# @rbs return: ::Integer
|
|
2336
|
+
# @return [Integer]
|
|
2337
|
+
# @see AttributeSets::PagePool::Dmabuf
|
|
2338
|
+
def dmabuf: () -> ::Integer
|
|
2339
|
+
|
|
2340
|
+
# io-uring memory provider information.
|
|
2341
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
2342
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
2343
|
+
# @see AttributeSets::PagePool::IoUring
|
|
2344
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
2345
|
+
end
|
|
2346
|
+
|
|
2347
|
+
# Get / dump information about Page Pools.
|
|
2348
|
+
# Only Page Pools associated by the driver with a net_device
|
|
2349
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
2350
|
+
# no longer exists.
|
|
2351
|
+
class DumpPagePoolGetRequest < ::Nl::Genl::Message
|
|
2352
|
+
TYPE: ::Integer
|
|
2353
|
+
|
|
2354
|
+
FIXED_HEADER: untyped
|
|
2355
|
+
|
|
2356
|
+
ATTRIBUTE_SET: untyped
|
|
2357
|
+
|
|
2358
|
+
ATTRIBUTES: untyped
|
|
2359
|
+
|
|
2360
|
+
# ifindex of the netdev to which the pool belongs.
|
|
2361
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
2362
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
2363
|
+
# because they wait for all memory to be returned).
|
|
2364
|
+
# @rbs return: ::Integer
|
|
2365
|
+
# @return [Integer]
|
|
2366
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
2367
|
+
def ifindex: () -> ::Integer
|
|
2368
|
+
end
|
|
2369
|
+
|
|
2370
|
+
# Get / dump information about Page Pools.
|
|
2371
|
+
# Only Page Pools associated by the driver with a net_device
|
|
2372
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
2373
|
+
# no longer exists.
|
|
2374
|
+
class DumpPagePoolGetReply < ::Nl::Genl::Message
|
|
2375
|
+
TYPE: ::Integer
|
|
2376
|
+
|
|
2377
|
+
FIXED_HEADER: untyped
|
|
2378
|
+
|
|
2379
|
+
ATTRIBUTE_SET: untyped
|
|
2380
|
+
|
|
2381
|
+
ATTRIBUTES: untyped
|
|
2382
|
+
|
|
2383
|
+
# Unique ID of a Page Pool instance.
|
|
2384
|
+
# @rbs return: ::Integer
|
|
2385
|
+
# @return [Integer]
|
|
2386
|
+
# @see AttributeSets::PagePool::Id
|
|
2387
|
+
def id: () -> ::Integer
|
|
2388
|
+
|
|
2389
|
+
# ifindex of the netdev to which the pool belongs.
|
|
2390
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
2391
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
2392
|
+
# because they wait for all memory to be returned).
|
|
2393
|
+
# @rbs return: ::Integer
|
|
2394
|
+
# @return [Integer]
|
|
2395
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
2396
|
+
def ifindex: () -> ::Integer
|
|
2397
|
+
|
|
2398
|
+
# Id of NAPI using this Page Pool instance.
|
|
2399
|
+
# @rbs return: ::Integer
|
|
2400
|
+
# @return [Integer]
|
|
2401
|
+
# @see AttributeSets::PagePool::NapiId
|
|
2402
|
+
def napi_id: () -> ::Integer
|
|
2403
|
+
|
|
2404
|
+
# Number of outstanding references to this page pool (allocated
|
|
2405
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
2406
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
2407
|
+
# ring, the page pool cache, etc.
|
|
2408
|
+
# @rbs return: ::Integer
|
|
2409
|
+
# @return [Integer]
|
|
2410
|
+
# @see AttributeSets::PagePool::Inflight
|
|
2411
|
+
def inflight: () -> ::Integer
|
|
2412
|
+
|
|
2413
|
+
# Amount of memory held by inflight pages.
|
|
2414
|
+
# @rbs return: ::Integer
|
|
2415
|
+
# @return [Integer]
|
|
2416
|
+
# @see AttributeSets::PagePool::InflightMem
|
|
2417
|
+
def inflight_mem: () -> ::Integer
|
|
2418
|
+
|
|
2419
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
2420
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
2421
|
+
# allocate memory.
|
|
2422
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
2423
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
2424
|
+
# "re-attached", they are just waiting to disappear.
|
|
2425
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
2426
|
+
# can still be used to allocate new memory.
|
|
2427
|
+
# @rbs return: ::Integer
|
|
2428
|
+
# @return [Integer]
|
|
2429
|
+
# @see AttributeSets::PagePool::DetachTime
|
|
2430
|
+
def detach_time: () -> ::Integer
|
|
2431
|
+
|
|
2432
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
2433
|
+
# @rbs return: ::Integer
|
|
2434
|
+
# @return [Integer]
|
|
2435
|
+
# @see AttributeSets::PagePool::Dmabuf
|
|
2436
|
+
def dmabuf: () -> ::Integer
|
|
2437
|
+
|
|
2438
|
+
# io-uring memory provider information.
|
|
2439
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
2440
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
2441
|
+
# @see AttributeSets::PagePool::IoUring
|
|
2442
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
2443
|
+
end
|
|
2444
|
+
|
|
2445
|
+
# Get page pool statistics.
|
|
2446
|
+
class DoPagePoolStatsGetRequest < ::Nl::Genl::Message
|
|
2447
|
+
TYPE: ::Integer
|
|
2448
|
+
|
|
2449
|
+
FIXED_HEADER: untyped
|
|
2450
|
+
|
|
2451
|
+
ATTRIBUTE_SET: untyped
|
|
2452
|
+
|
|
2453
|
+
ATTRIBUTES: untyped
|
|
2454
|
+
|
|
2455
|
+
# Page pool identifying information.
|
|
2456
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
2457
|
+
# @return [AttributeSets::PagePoolInfo]
|
|
2458
|
+
# @see AttributeSets::PagePoolStats::Info
|
|
2459
|
+
def info: () -> AttributeSets::PagePoolInfo
|
|
2460
|
+
end
|
|
2461
|
+
|
|
2462
|
+
# Get page pool statistics.
|
|
2463
|
+
class DoPagePoolStatsGetReply < ::Nl::Genl::Message
|
|
2464
|
+
TYPE: ::Integer
|
|
2465
|
+
|
|
2466
|
+
FIXED_HEADER: untyped
|
|
2467
|
+
|
|
2468
|
+
ATTRIBUTE_SET: untyped
|
|
2469
|
+
|
|
2470
|
+
ATTRIBUTES: untyped
|
|
2471
|
+
|
|
2472
|
+
# Page pool identifying information.
|
|
2473
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
2474
|
+
# @return [AttributeSets::PagePoolInfo]
|
|
2475
|
+
# @see AttributeSets::PagePoolStats::Info
|
|
2476
|
+
def info: () -> AttributeSets::PagePoolInfo
|
|
2477
|
+
|
|
2478
|
+
# @rbs return: ::Integer
|
|
2479
|
+
# @return [Integer]
|
|
2480
|
+
# @see AttributeSets::PagePoolStats::AllocFast
|
|
2481
|
+
def alloc_fast: () -> ::Integer
|
|
2482
|
+
|
|
2483
|
+
# @rbs return: ::Integer
|
|
2484
|
+
# @return [Integer]
|
|
2485
|
+
# @see AttributeSets::PagePoolStats::AllocSlow
|
|
2486
|
+
def alloc_slow: () -> ::Integer
|
|
2487
|
+
|
|
2488
|
+
# @rbs return: ::Integer
|
|
2489
|
+
# @return [Integer]
|
|
2490
|
+
# @see AttributeSets::PagePoolStats::AllocSlowHighOrder
|
|
2491
|
+
def alloc_slow_high_order: () -> ::Integer
|
|
2492
|
+
|
|
2493
|
+
# @rbs return: ::Integer
|
|
2494
|
+
# @return [Integer]
|
|
2495
|
+
# @see AttributeSets::PagePoolStats::AllocEmpty
|
|
2496
|
+
def alloc_empty: () -> ::Integer
|
|
2497
|
+
|
|
2498
|
+
# @rbs return: ::Integer
|
|
2499
|
+
# @return [Integer]
|
|
2500
|
+
# @see AttributeSets::PagePoolStats::AllocRefill
|
|
2501
|
+
def alloc_refill: () -> ::Integer
|
|
2502
|
+
|
|
2503
|
+
# @rbs return: ::Integer
|
|
2504
|
+
# @return [Integer]
|
|
2505
|
+
# @see AttributeSets::PagePoolStats::AllocWaive
|
|
2506
|
+
def alloc_waive: () -> ::Integer
|
|
2507
|
+
|
|
2508
|
+
# @rbs return: ::Integer
|
|
2509
|
+
# @return [Integer]
|
|
2510
|
+
# @see AttributeSets::PagePoolStats::RecycleCached
|
|
2511
|
+
def recycle_cached: () -> ::Integer
|
|
2512
|
+
|
|
2513
|
+
# @rbs return: ::Integer
|
|
2514
|
+
# @return [Integer]
|
|
2515
|
+
# @see AttributeSets::PagePoolStats::RecycleCacheFull
|
|
2516
|
+
def recycle_cache_full: () -> ::Integer
|
|
2517
|
+
|
|
2518
|
+
# @rbs return: ::Integer
|
|
2519
|
+
# @return [Integer]
|
|
2520
|
+
# @see AttributeSets::PagePoolStats::RecycleRing
|
|
2521
|
+
def recycle_ring: () -> ::Integer
|
|
2522
|
+
|
|
2523
|
+
# @rbs return: ::Integer
|
|
2524
|
+
# @return [Integer]
|
|
2525
|
+
# @see AttributeSets::PagePoolStats::RecycleRingFull
|
|
2526
|
+
def recycle_ring_full: () -> ::Integer
|
|
2527
|
+
|
|
2528
|
+
# @rbs return: ::Integer
|
|
2529
|
+
# @return [Integer]
|
|
2530
|
+
# @see AttributeSets::PagePoolStats::RecycleReleasedRefcnt
|
|
2531
|
+
def recycle_released_refcnt: () -> ::Integer
|
|
2532
|
+
end
|
|
2533
|
+
|
|
2534
|
+
# Get page pool statistics.
|
|
2535
|
+
class DumpPagePoolStatsGetRequest < ::Nl::Genl::Message
|
|
2536
|
+
TYPE: ::Integer
|
|
2537
|
+
|
|
2538
|
+
FIXED_HEADER: untyped
|
|
2539
|
+
|
|
2540
|
+
ATTRIBUTE_SET: untyped
|
|
2541
|
+
|
|
2542
|
+
ATTRIBUTES: untyped
|
|
2543
|
+
|
|
2544
|
+
# Page pool identifying information.
|
|
2545
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
2546
|
+
# @return [AttributeSets::PagePoolInfo]
|
|
2547
|
+
# @see AttributeSets::PagePoolStats::Info
|
|
2548
|
+
def info: () -> AttributeSets::PagePoolInfo
|
|
2549
|
+
end
|
|
2550
|
+
|
|
2551
|
+
# Get page pool statistics.
|
|
2552
|
+
class DumpPagePoolStatsGetReply < ::Nl::Genl::Message
|
|
2553
|
+
TYPE: ::Integer
|
|
2554
|
+
|
|
2555
|
+
FIXED_HEADER: untyped
|
|
2556
|
+
|
|
2557
|
+
ATTRIBUTE_SET: untyped
|
|
2558
|
+
|
|
2559
|
+
ATTRIBUTES: untyped
|
|
2560
|
+
|
|
2561
|
+
# Page pool identifying information.
|
|
2562
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
2563
|
+
# @return [AttributeSets::PagePoolInfo]
|
|
2564
|
+
# @see AttributeSets::PagePoolStats::Info
|
|
2565
|
+
def info: () -> AttributeSets::PagePoolInfo
|
|
2566
|
+
|
|
2567
|
+
# @rbs return: ::Integer
|
|
2568
|
+
# @return [Integer]
|
|
2569
|
+
# @see AttributeSets::PagePoolStats::AllocFast
|
|
2570
|
+
def alloc_fast: () -> ::Integer
|
|
2571
|
+
|
|
2572
|
+
# @rbs return: ::Integer
|
|
2573
|
+
# @return [Integer]
|
|
2574
|
+
# @see AttributeSets::PagePoolStats::AllocSlow
|
|
2575
|
+
def alloc_slow: () -> ::Integer
|
|
2576
|
+
|
|
2577
|
+
# @rbs return: ::Integer
|
|
2578
|
+
# @return [Integer]
|
|
2579
|
+
# @see AttributeSets::PagePoolStats::AllocSlowHighOrder
|
|
2580
|
+
def alloc_slow_high_order: () -> ::Integer
|
|
2581
|
+
|
|
2582
|
+
# @rbs return: ::Integer
|
|
2583
|
+
# @return [Integer]
|
|
2584
|
+
# @see AttributeSets::PagePoolStats::AllocEmpty
|
|
2585
|
+
def alloc_empty: () -> ::Integer
|
|
2586
|
+
|
|
2587
|
+
# @rbs return: ::Integer
|
|
2588
|
+
# @return [Integer]
|
|
2589
|
+
# @see AttributeSets::PagePoolStats::AllocRefill
|
|
2590
|
+
def alloc_refill: () -> ::Integer
|
|
2591
|
+
|
|
2592
|
+
# @rbs return: ::Integer
|
|
2593
|
+
# @return [Integer]
|
|
2594
|
+
# @see AttributeSets::PagePoolStats::AllocWaive
|
|
2595
|
+
def alloc_waive: () -> ::Integer
|
|
2596
|
+
|
|
2597
|
+
# @rbs return: ::Integer
|
|
2598
|
+
# @return [Integer]
|
|
2599
|
+
# @see AttributeSets::PagePoolStats::RecycleCached
|
|
2600
|
+
def recycle_cached: () -> ::Integer
|
|
2601
|
+
|
|
2602
|
+
# @rbs return: ::Integer
|
|
2603
|
+
# @return [Integer]
|
|
2604
|
+
# @see AttributeSets::PagePoolStats::RecycleCacheFull
|
|
2605
|
+
def recycle_cache_full: () -> ::Integer
|
|
2606
|
+
|
|
2607
|
+
# @rbs return: ::Integer
|
|
2608
|
+
# @return [Integer]
|
|
2609
|
+
# @see AttributeSets::PagePoolStats::RecycleRing
|
|
2610
|
+
def recycle_ring: () -> ::Integer
|
|
2611
|
+
|
|
2612
|
+
# @rbs return: ::Integer
|
|
2613
|
+
# @return [Integer]
|
|
2614
|
+
# @see AttributeSets::PagePoolStats::RecycleRingFull
|
|
2615
|
+
def recycle_ring_full: () -> ::Integer
|
|
2616
|
+
|
|
2617
|
+
# @rbs return: ::Integer
|
|
2618
|
+
# @return [Integer]
|
|
2619
|
+
# @see AttributeSets::PagePoolStats::RecycleReleasedRefcnt
|
|
2620
|
+
def recycle_released_refcnt: () -> ::Integer
|
|
2621
|
+
end
|
|
2622
|
+
|
|
2623
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
2624
|
+
class DoQueueGetRequest < ::Nl::Genl::Message
|
|
2625
|
+
TYPE: ::Integer
|
|
2626
|
+
|
|
2627
|
+
FIXED_HEADER: untyped
|
|
2628
|
+
|
|
2629
|
+
ATTRIBUTE_SET: untyped
|
|
2630
|
+
|
|
2631
|
+
ATTRIBUTES: untyped
|
|
2632
|
+
|
|
2633
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
2634
|
+
# @rbs return: ::Integer
|
|
2635
|
+
# @return [Integer]
|
|
2636
|
+
# @see AttributeSets::Queue::Id
|
|
2637
|
+
def id: () -> ::Integer
|
|
2638
|
+
|
|
2639
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
2640
|
+
# @rbs return: ::Integer
|
|
2641
|
+
# @return [Integer]
|
|
2642
|
+
# @see AttributeSets::Queue::Ifindex
|
|
2643
|
+
def ifindex: () -> ::Integer
|
|
2644
|
+
|
|
2645
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
2646
|
+
#
|
|
2647
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
2648
|
+
# @rbs return: ::Integer
|
|
2649
|
+
# @return [Integer]
|
|
2650
|
+
# @see AttributeSets::Queue::Type
|
|
2651
|
+
def type: () -> ::Integer
|
|
2652
|
+
end
|
|
2653
|
+
|
|
2654
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
2655
|
+
class DoQueueGetReply < ::Nl::Genl::Message
|
|
2656
|
+
TYPE: ::Integer
|
|
2657
|
+
|
|
2658
|
+
FIXED_HEADER: untyped
|
|
2659
|
+
|
|
2660
|
+
ATTRIBUTE_SET: untyped
|
|
2661
|
+
|
|
2662
|
+
ATTRIBUTES: untyped
|
|
2663
|
+
|
|
2664
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
2665
|
+
# @rbs return: ::Integer
|
|
2666
|
+
# @return [Integer]
|
|
2667
|
+
# @see AttributeSets::Queue::Id
|
|
2668
|
+
def id: () -> ::Integer
|
|
2669
|
+
|
|
2670
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
2671
|
+
# @rbs return: ::Integer
|
|
2672
|
+
# @return [Integer]
|
|
2673
|
+
# @see AttributeSets::Queue::Ifindex
|
|
2674
|
+
def ifindex: () -> ::Integer
|
|
2675
|
+
|
|
2676
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
2677
|
+
#
|
|
2678
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
2679
|
+
# @rbs return: ::Integer
|
|
2680
|
+
# @return [Integer]
|
|
2681
|
+
# @see AttributeSets::Queue::Type
|
|
2682
|
+
def type: () -> ::Integer
|
|
2683
|
+
|
|
2684
|
+
# ID of the NAPI instance which services this queue.
|
|
2685
|
+
# @rbs return: ::Integer
|
|
2686
|
+
# @return [Integer]
|
|
2687
|
+
# @see AttributeSets::Queue::NapiId
|
|
2688
|
+
def napi_id: () -> ::Integer
|
|
2689
|
+
|
|
2690
|
+
# ID of the dmabuf attached to this queue, if any.
|
|
2691
|
+
# @rbs return: ::Integer
|
|
2692
|
+
# @return [Integer]
|
|
2693
|
+
# @see AttributeSets::Queue::Dmabuf
|
|
2694
|
+
def dmabuf: () -> ::Integer
|
|
2695
|
+
|
|
2696
|
+
# io_uring memory provider information.
|
|
2697
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
2698
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
2699
|
+
# @see AttributeSets::Queue::IoUring
|
|
2700
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
2701
|
+
|
|
2702
|
+
# XSK information for this queue, if any.
|
|
2703
|
+
# @rbs return: AttributeSets::XskInfo
|
|
2704
|
+
# @return [AttributeSets::XskInfo]
|
|
2705
|
+
# @see AttributeSets::Queue::Xsk
|
|
2706
|
+
def xsk: () -> AttributeSets::XskInfo
|
|
2707
|
+
|
|
2708
|
+
# A queue from a virtual device can have a lease which refers to
|
|
2709
|
+
# another queue from a physical device. This is useful for memory
|
|
2710
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
2711
|
+
# to allow applications to bind against virtual devices in containers.
|
|
2712
|
+
# @rbs return: AttributeSets::Lease
|
|
2713
|
+
# @return [AttributeSets::Lease]
|
|
2714
|
+
# @see AttributeSets::Queue::Lease
|
|
2715
|
+
def lease: () -> AttributeSets::Lease
|
|
2716
|
+
end
|
|
2717
|
+
|
|
2718
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
2719
|
+
class DumpQueueGetRequest < ::Nl::Genl::Message
|
|
2720
|
+
TYPE: ::Integer
|
|
2721
|
+
|
|
2722
|
+
FIXED_HEADER: untyped
|
|
2723
|
+
|
|
2724
|
+
ATTRIBUTE_SET: untyped
|
|
2725
|
+
|
|
2726
|
+
ATTRIBUTES: untyped
|
|
2727
|
+
|
|
2728
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
2729
|
+
# @rbs return: ::Integer
|
|
2730
|
+
# @return [Integer]
|
|
2731
|
+
# @see AttributeSets::Queue::Ifindex
|
|
2732
|
+
def ifindex: () -> ::Integer
|
|
2733
|
+
end
|
|
2734
|
+
|
|
2735
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
2736
|
+
class DumpQueueGetReply < ::Nl::Genl::Message
|
|
2737
|
+
TYPE: ::Integer
|
|
2738
|
+
|
|
2739
|
+
FIXED_HEADER: untyped
|
|
2740
|
+
|
|
2741
|
+
ATTRIBUTE_SET: untyped
|
|
2742
|
+
|
|
2743
|
+
ATTRIBUTES: untyped
|
|
2744
|
+
|
|
2745
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
2746
|
+
# @rbs return: ::Integer
|
|
2747
|
+
# @return [Integer]
|
|
2748
|
+
# @see AttributeSets::Queue::Id
|
|
2749
|
+
def id: () -> ::Integer
|
|
2750
|
+
|
|
2751
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
2752
|
+
# @rbs return: ::Integer
|
|
2753
|
+
# @return [Integer]
|
|
2754
|
+
# @see AttributeSets::Queue::Ifindex
|
|
2755
|
+
def ifindex: () -> ::Integer
|
|
2756
|
+
|
|
2757
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
2758
|
+
#
|
|
2759
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
2760
|
+
# @rbs return: ::Integer
|
|
2761
|
+
# @return [Integer]
|
|
2762
|
+
# @see AttributeSets::Queue::Type
|
|
2763
|
+
def type: () -> ::Integer
|
|
2764
|
+
|
|
2765
|
+
# ID of the NAPI instance which services this queue.
|
|
2766
|
+
# @rbs return: ::Integer
|
|
2767
|
+
# @return [Integer]
|
|
2768
|
+
# @see AttributeSets::Queue::NapiId
|
|
2769
|
+
def napi_id: () -> ::Integer
|
|
2770
|
+
|
|
2771
|
+
# ID of the dmabuf attached to this queue, if any.
|
|
2772
|
+
# @rbs return: ::Integer
|
|
2773
|
+
# @return [Integer]
|
|
2774
|
+
# @see AttributeSets::Queue::Dmabuf
|
|
2775
|
+
def dmabuf: () -> ::Integer
|
|
2776
|
+
|
|
2777
|
+
# io_uring memory provider information.
|
|
2778
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
2779
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
2780
|
+
# @see AttributeSets::Queue::IoUring
|
|
2781
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
2782
|
+
|
|
2783
|
+
# XSK information for this queue, if any.
|
|
2784
|
+
# @rbs return: AttributeSets::XskInfo
|
|
2785
|
+
# @return [AttributeSets::XskInfo]
|
|
2786
|
+
# @see AttributeSets::Queue::Xsk
|
|
2787
|
+
def xsk: () -> AttributeSets::XskInfo
|
|
2788
|
+
|
|
2789
|
+
# A queue from a virtual device can have a lease which refers to
|
|
2790
|
+
# another queue from a physical device. This is useful for memory
|
|
2791
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
2792
|
+
# to allow applications to bind against virtual devices in containers.
|
|
2793
|
+
# @rbs return: AttributeSets::Lease
|
|
2794
|
+
# @return [AttributeSets::Lease]
|
|
2795
|
+
# @see AttributeSets::Queue::Lease
|
|
2796
|
+
def lease: () -> AttributeSets::Lease
|
|
2797
|
+
end
|
|
2798
|
+
|
|
2799
|
+
# Get information about NAPI instances configured on the system.
|
|
2800
|
+
class DoNapiGetRequest < ::Nl::Genl::Message
|
|
2801
|
+
TYPE: ::Integer
|
|
2802
|
+
|
|
2803
|
+
FIXED_HEADER: untyped
|
|
2804
|
+
|
|
2805
|
+
ATTRIBUTE_SET: untyped
|
|
2806
|
+
|
|
2807
|
+
ATTRIBUTES: untyped
|
|
2808
|
+
|
|
2809
|
+
# ID of the NAPI instance.
|
|
2810
|
+
# @rbs return: ::Integer
|
|
2811
|
+
# @return [Integer]
|
|
2812
|
+
# @see AttributeSets::Napi::Id
|
|
2813
|
+
def id: () -> ::Integer
|
|
2814
|
+
end
|
|
2815
|
+
|
|
2816
|
+
# Get information about NAPI instances configured on the system.
|
|
2817
|
+
class DoNapiGetReply < ::Nl::Genl::Message
|
|
2818
|
+
TYPE: ::Integer
|
|
2819
|
+
|
|
2820
|
+
FIXED_HEADER: untyped
|
|
2821
|
+
|
|
2822
|
+
ATTRIBUTE_SET: untyped
|
|
2823
|
+
|
|
2824
|
+
ATTRIBUTES: untyped
|
|
2825
|
+
|
|
2826
|
+
# ifindex of the netdevice to which NAPI instance belongs.
|
|
2827
|
+
# @rbs return: ::Integer
|
|
2828
|
+
# @return [Integer]
|
|
2829
|
+
# @see AttributeSets::Napi::Ifindex
|
|
2830
|
+
def ifindex: () -> ::Integer
|
|
2831
|
+
|
|
2832
|
+
# ID of the NAPI instance.
|
|
2833
|
+
# @rbs return: ::Integer
|
|
2834
|
+
# @return [Integer]
|
|
2835
|
+
# @see AttributeSets::Napi::Id
|
|
2836
|
+
def id: () -> ::Integer
|
|
2837
|
+
|
|
2838
|
+
# The associated interrupt vector number for the napi
|
|
2839
|
+
# @rbs return: ::Integer
|
|
2840
|
+
# @return [Integer]
|
|
2841
|
+
# @see AttributeSets::Napi::Irq
|
|
2842
|
+
def irq: () -> ::Integer
|
|
2843
|
+
|
|
2844
|
+
# PID of the napi thread, if NAPI is configured to operate in threaded mode. If NAPI is not in threaded mode (i.e. uses normal softirq context), the attribute will be absent.
|
|
2845
|
+
# @rbs return: ::Integer
|
|
2846
|
+
# @return [Integer]
|
|
2847
|
+
# @see AttributeSets::Napi::Pid
|
|
2848
|
+
def pid: () -> ::Integer
|
|
2849
|
+
|
|
2850
|
+
# The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
2851
|
+
# @rbs return: ::Integer
|
|
2852
|
+
# @return [Integer]
|
|
2853
|
+
# @see AttributeSets::Napi::DeferHardIrqs
|
|
2854
|
+
def defer_hard_irqs: () -> ::Integer
|
|
2855
|
+
|
|
2856
|
+
# The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
2857
|
+
# @rbs return: ::Integer
|
|
2858
|
+
# @return [Integer]
|
|
2859
|
+
# @see AttributeSets::Napi::GroFlushTimeout
|
|
2860
|
+
def gro_flush_timeout: () -> ::Integer
|
|
2861
|
+
|
|
2862
|
+
# The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
2863
|
+
# @rbs return: ::Integer
|
|
2864
|
+
# @return [Integer]
|
|
2865
|
+
# @see AttributeSets::Napi::IrqSuspendTimeout
|
|
2866
|
+
def irq_suspend_timeout: () -> ::Integer
|
|
2867
|
+
|
|
2868
|
+
# Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
2869
|
+
#
|
|
2870
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
2871
|
+
# @rbs return: ::Integer
|
|
2872
|
+
# @return [Integer]
|
|
2873
|
+
# @see AttributeSets::Napi::Threaded
|
|
2874
|
+
def threaded: () -> ::Integer
|
|
2875
|
+
end
|
|
2876
|
+
|
|
2877
|
+
# Get information about NAPI instances configured on the system.
|
|
2878
|
+
class DumpNapiGetRequest < ::Nl::Genl::Message
|
|
2879
|
+
TYPE: ::Integer
|
|
2880
|
+
|
|
2881
|
+
FIXED_HEADER: untyped
|
|
2882
|
+
|
|
2883
|
+
ATTRIBUTE_SET: untyped
|
|
2884
|
+
|
|
2885
|
+
ATTRIBUTES: untyped
|
|
2886
|
+
|
|
2887
|
+
# ifindex of the netdevice to which NAPI instance belongs.
|
|
2888
|
+
# @rbs return: ::Integer
|
|
2889
|
+
# @return [Integer]
|
|
2890
|
+
# @see AttributeSets::Napi::Ifindex
|
|
2891
|
+
def ifindex: () -> ::Integer
|
|
2892
|
+
end
|
|
2893
|
+
|
|
2894
|
+
# Get information about NAPI instances configured on the system.
|
|
2895
|
+
class DumpNapiGetReply < ::Nl::Genl::Message
|
|
2896
|
+
TYPE: ::Integer
|
|
2897
|
+
|
|
2898
|
+
FIXED_HEADER: untyped
|
|
2899
|
+
|
|
2900
|
+
ATTRIBUTE_SET: untyped
|
|
2901
|
+
|
|
2902
|
+
ATTRIBUTES: untyped
|
|
2903
|
+
|
|
2904
|
+
# ifindex of the netdevice to which NAPI instance belongs.
|
|
2905
|
+
# @rbs return: ::Integer
|
|
2906
|
+
# @return [Integer]
|
|
2907
|
+
# @see AttributeSets::Napi::Ifindex
|
|
2908
|
+
def ifindex: () -> ::Integer
|
|
2909
|
+
|
|
2910
|
+
# ID of the NAPI instance.
|
|
2911
|
+
# @rbs return: ::Integer
|
|
2912
|
+
# @return [Integer]
|
|
2913
|
+
# @see AttributeSets::Napi::Id
|
|
2914
|
+
def id: () -> ::Integer
|
|
2915
|
+
|
|
2916
|
+
# The associated interrupt vector number for the napi
|
|
2917
|
+
# @rbs return: ::Integer
|
|
2918
|
+
# @return [Integer]
|
|
2919
|
+
# @see AttributeSets::Napi::Irq
|
|
2920
|
+
def irq: () -> ::Integer
|
|
2921
|
+
|
|
2922
|
+
# PID of the napi thread, if NAPI is configured to operate in threaded mode. If NAPI is not in threaded mode (i.e. uses normal softirq context), the attribute will be absent.
|
|
2923
|
+
# @rbs return: ::Integer
|
|
2924
|
+
# @return [Integer]
|
|
2925
|
+
# @see AttributeSets::Napi::Pid
|
|
2926
|
+
def pid: () -> ::Integer
|
|
2927
|
+
|
|
2928
|
+
# The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
2929
|
+
# @rbs return: ::Integer
|
|
2930
|
+
# @return [Integer]
|
|
2931
|
+
# @see AttributeSets::Napi::DeferHardIrqs
|
|
2932
|
+
def defer_hard_irqs: () -> ::Integer
|
|
2933
|
+
|
|
2934
|
+
# The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
2935
|
+
# @rbs return: ::Integer
|
|
2936
|
+
# @return [Integer]
|
|
2937
|
+
# @see AttributeSets::Napi::GroFlushTimeout
|
|
2938
|
+
def gro_flush_timeout: () -> ::Integer
|
|
2939
|
+
|
|
2940
|
+
# The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
2941
|
+
# @rbs return: ::Integer
|
|
2942
|
+
# @return [Integer]
|
|
2943
|
+
# @see AttributeSets::Napi::IrqSuspendTimeout
|
|
2944
|
+
def irq_suspend_timeout: () -> ::Integer
|
|
2945
|
+
|
|
2946
|
+
# Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
2947
|
+
#
|
|
2948
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
2949
|
+
# @rbs return: ::Integer
|
|
2950
|
+
# @return [Integer]
|
|
2951
|
+
# @see AttributeSets::Napi::Threaded
|
|
2952
|
+
def threaded: () -> ::Integer
|
|
2953
|
+
end
|
|
2954
|
+
|
|
2955
|
+
# Get / dump fine grained statistics. Which statistics are reported
|
|
2956
|
+
# depends on the device and the driver, and whether the driver stores
|
|
2957
|
+
# software counters per-queue.
|
|
2958
|
+
class DumpQstatsGetRequest < ::Nl::Genl::Message
|
|
2959
|
+
TYPE: ::Integer
|
|
2960
|
+
|
|
2961
|
+
FIXED_HEADER: untyped
|
|
2962
|
+
|
|
2963
|
+
ATTRIBUTE_SET: untyped
|
|
2964
|
+
|
|
2965
|
+
ATTRIBUTES: untyped
|
|
2966
|
+
|
|
2967
|
+
# ifindex of the netdevice to which stats belong.
|
|
2968
|
+
# @rbs return: ::Integer
|
|
2969
|
+
# @return [Integer]
|
|
2970
|
+
# @see AttributeSets::Qstats::Ifindex
|
|
2971
|
+
def ifindex: () -> ::Integer
|
|
2972
|
+
|
|
2973
|
+
# What object type should be used to iterate over the stats.
|
|
2974
|
+
#
|
|
2975
|
+
#
|
|
2976
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
2977
|
+
# @rbs return: ::Integer
|
|
2978
|
+
# @return [Integer]
|
|
2979
|
+
# @see AttributeSets::Qstats::Scope
|
|
2980
|
+
def scope: () -> ::Integer
|
|
2981
|
+
end
|
|
2982
|
+
|
|
2983
|
+
# Get / dump fine grained statistics. Which statistics are reported
|
|
2984
|
+
# depends on the device and the driver, and whether the driver stores
|
|
2985
|
+
# software counters per-queue.
|
|
2986
|
+
class DumpQstatsGetReply < ::Nl::Genl::Message
|
|
2987
|
+
TYPE: ::Integer
|
|
2988
|
+
|
|
2989
|
+
FIXED_HEADER: untyped
|
|
2990
|
+
|
|
2991
|
+
ATTRIBUTE_SET: untyped
|
|
2992
|
+
|
|
2993
|
+
ATTRIBUTES: untyped
|
|
2994
|
+
|
|
2995
|
+
# ifindex of the netdevice to which stats belong.
|
|
2996
|
+
# @rbs return: ::Integer
|
|
2997
|
+
# @return [Integer]
|
|
2998
|
+
# @see AttributeSets::Qstats::Ifindex
|
|
2999
|
+
def ifindex: () -> ::Integer
|
|
3000
|
+
|
|
3001
|
+
# Queue type as rx, tx, for queue-id.
|
|
3002
|
+
#
|
|
3003
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
3004
|
+
# @rbs return: ::Integer
|
|
3005
|
+
# @return [Integer]
|
|
3006
|
+
# @see AttributeSets::Qstats::QueueType
|
|
3007
|
+
def queue_type: () -> ::Integer
|
|
3008
|
+
|
|
3009
|
+
# Queue ID, if stats are scoped to a single queue instance.
|
|
3010
|
+
# @rbs return: ::Integer
|
|
3011
|
+
# @return [Integer]
|
|
3012
|
+
# @see AttributeSets::Qstats::QueueId
|
|
3013
|
+
def queue_id: () -> ::Integer
|
|
3014
|
+
|
|
3015
|
+
# Number of wire packets successfully received and passed to the stack.
|
|
3016
|
+
# For drivers supporting XDP, XDP is considered the first layer
|
|
3017
|
+
# of the stack, so packets consumed by XDP are still counted here.
|
|
3018
|
+
# @rbs return: ::Integer
|
|
3019
|
+
# @return [Integer]
|
|
3020
|
+
# @see AttributeSets::Qstats::RxPackets
|
|
3021
|
+
def rx_packets: () -> ::Integer
|
|
3022
|
+
|
|
3023
|
+
# Successfully received bytes, see `rx-packets`.
|
|
3024
|
+
# @rbs return: ::Integer
|
|
3025
|
+
# @return [Integer]
|
|
3026
|
+
# @see AttributeSets::Qstats::RxBytes
|
|
3027
|
+
def rx_bytes: () -> ::Integer
|
|
3028
|
+
|
|
3029
|
+
# Number of wire packets successfully sent. Packet is considered to be
|
|
3030
|
+
# successfully sent once it is in device memory (usually this means
|
|
3031
|
+
# the device has issued a DMA completion for the packet).
|
|
3032
|
+
# @rbs return: ::Integer
|
|
3033
|
+
# @return [Integer]
|
|
3034
|
+
# @see AttributeSets::Qstats::TxPackets
|
|
3035
|
+
def tx_packets: () -> ::Integer
|
|
3036
|
+
|
|
3037
|
+
# Successfully sent bytes, see `tx-packets`.
|
|
3038
|
+
# @rbs return: ::Integer
|
|
3039
|
+
# @return [Integer]
|
|
3040
|
+
# @see AttributeSets::Qstats::TxBytes
|
|
3041
|
+
def tx_bytes: () -> ::Integer
|
|
3042
|
+
|
|
3043
|
+
# Number of times skb or buffer allocation failed on the Rx datapath.
|
|
3044
|
+
# Allocation failure may, or may not result in a packet drop, depending
|
|
3045
|
+
# on driver implementation and whether system recovers quickly.
|
|
3046
|
+
# @rbs return: ::Integer
|
|
3047
|
+
# @return [Integer]
|
|
3048
|
+
# @see AttributeSets::Qstats::RxAllocFail
|
|
3049
|
+
def rx_alloc_fail: () -> ::Integer
|
|
3050
|
+
|
|
3051
|
+
# Number of all packets which entered the device, but never left it,
|
|
3052
|
+
# including but not limited to: packets dropped due to lack of buffer
|
|
3053
|
+
# space, processing errors, explicit or implicit policies and packet
|
|
3054
|
+
# filters.
|
|
3055
|
+
# @rbs return: ::Integer
|
|
3056
|
+
# @return [Integer]
|
|
3057
|
+
# @see AttributeSets::Qstats::RxHwDrops
|
|
3058
|
+
def rx_hw_drops: () -> ::Integer
|
|
3059
|
+
|
|
3060
|
+
# Number of packets dropped due to transient lack of resources, such as
|
|
3061
|
+
# buffer space, host descriptors etc.
|
|
3062
|
+
# @rbs return: ::Integer
|
|
3063
|
+
# @return [Integer]
|
|
3064
|
+
# @see AttributeSets::Qstats::RxHwDropOverruns
|
|
3065
|
+
def rx_hw_drop_overruns: () -> ::Integer
|
|
3066
|
+
|
|
3067
|
+
# Number of packets that were marked as CHECKSUM_COMPLETE.
|
|
3068
|
+
# @rbs return: ::Integer
|
|
3069
|
+
# @return [Integer]
|
|
3070
|
+
# @see AttributeSets::Qstats::RxCsumComplete
|
|
3071
|
+
def rx_csum_complete: () -> ::Integer
|
|
3072
|
+
|
|
3073
|
+
# Number of packets that were marked as CHECKSUM_UNNECESSARY.
|
|
3074
|
+
# @rbs return: ::Integer
|
|
3075
|
+
# @return [Integer]
|
|
3076
|
+
# @see AttributeSets::Qstats::RxCsumUnnecessary
|
|
3077
|
+
def rx_csum_unnecessary: () -> ::Integer
|
|
3078
|
+
|
|
3079
|
+
# Number of packets that were not checksummed by device.
|
|
3080
|
+
# @rbs return: ::Integer
|
|
3081
|
+
# @return [Integer]
|
|
3082
|
+
# @see AttributeSets::Qstats::RxCsumNone
|
|
3083
|
+
def rx_csum_none: () -> ::Integer
|
|
3084
|
+
|
|
3085
|
+
# Number of packets with bad checksum. The packets are not discarded,
|
|
3086
|
+
# but still delivered to the stack.
|
|
3087
|
+
# @rbs return: ::Integer
|
|
3088
|
+
# @return [Integer]
|
|
3089
|
+
# @see AttributeSets::Qstats::RxCsumBad
|
|
3090
|
+
def rx_csum_bad: () -> ::Integer
|
|
3091
|
+
|
|
3092
|
+
# Number of packets that were coalesced from smaller packets by the
|
|
3093
|
+
# device. Counts only packets coalesced with the HW-GRO netdevice
|
|
3094
|
+
# feature, LRO-coalesced packets are not counted.
|
|
3095
|
+
# @rbs return: ::Integer
|
|
3096
|
+
# @return [Integer]
|
|
3097
|
+
# @see AttributeSets::Qstats::RxHwGroPackets
|
|
3098
|
+
def rx_hw_gro_packets: () -> ::Integer
|
|
3099
|
+
|
|
3100
|
+
# See `rx-hw-gro-packets`.
|
|
3101
|
+
# @rbs return: ::Integer
|
|
3102
|
+
# @return [Integer]
|
|
3103
|
+
# @see AttributeSets::Qstats::RxHwGroBytes
|
|
3104
|
+
def rx_hw_gro_bytes: () -> ::Integer
|
|
3105
|
+
|
|
3106
|
+
# Number of packets that were coalesced to bigger packetss with the
|
|
3107
|
+
# HW-GRO netdevice feature. LRO-coalesced packets are not counted.
|
|
3108
|
+
# @rbs return: ::Integer
|
|
3109
|
+
# @return [Integer]
|
|
3110
|
+
# @see AttributeSets::Qstats::RxHwGroWirePackets
|
|
3111
|
+
def rx_hw_gro_wire_packets: () -> ::Integer
|
|
3112
|
+
|
|
3113
|
+
# See `rx-hw-gro-wire-packets`.
|
|
3114
|
+
# @rbs return: ::Integer
|
|
3115
|
+
# @return [Integer]
|
|
3116
|
+
# @see AttributeSets::Qstats::RxHwGroWireBytes
|
|
3117
|
+
def rx_hw_gro_wire_bytes: () -> ::Integer
|
|
3118
|
+
|
|
3119
|
+
# Number of the packets dropped by the device due to the received
|
|
3120
|
+
# packets bitrate exceeding the device rate limit.
|
|
3121
|
+
# @rbs return: ::Integer
|
|
3122
|
+
# @return [Integer]
|
|
3123
|
+
# @see AttributeSets::Qstats::RxHwDropRatelimits
|
|
3124
|
+
def rx_hw_drop_ratelimits: () -> ::Integer
|
|
3125
|
+
|
|
3126
|
+
# Number of packets that arrived at the device but never left it,
|
|
3127
|
+
# encompassing packets dropped for reasons such as processing errors, as
|
|
3128
|
+
# well as those affected by explicitly defined policies and packet
|
|
3129
|
+
# filtering criteria.
|
|
3130
|
+
# @rbs return: ::Integer
|
|
3131
|
+
# @return [Integer]
|
|
3132
|
+
# @see AttributeSets::Qstats::TxHwDrops
|
|
3133
|
+
def tx_hw_drops: () -> ::Integer
|
|
3134
|
+
|
|
3135
|
+
# Number of packets dropped because they were invalid or malformed.
|
|
3136
|
+
# @rbs return: ::Integer
|
|
3137
|
+
# @return [Integer]
|
|
3138
|
+
# @see AttributeSets::Qstats::TxHwDropErrors
|
|
3139
|
+
def tx_hw_drop_errors: () -> ::Integer
|
|
3140
|
+
|
|
3141
|
+
# Number of packets that did not require the device to calculate the
|
|
3142
|
+
# checksum.
|
|
3143
|
+
# @rbs return: ::Integer
|
|
3144
|
+
# @return [Integer]
|
|
3145
|
+
# @see AttributeSets::Qstats::TxCsumNone
|
|
3146
|
+
def tx_csum_none: () -> ::Integer
|
|
3147
|
+
|
|
3148
|
+
# Number of packets that required the device to calculate the checksum.
|
|
3149
|
+
# This counter includes the number of GSO wire packets for which device
|
|
3150
|
+
# calculated the L4 checksum.
|
|
3151
|
+
# @rbs return: ::Integer
|
|
3152
|
+
# @return [Integer]
|
|
3153
|
+
# @see AttributeSets::Qstats::TxNeedsCsum
|
|
3154
|
+
def tx_needs_csum: () -> ::Integer
|
|
3155
|
+
|
|
3156
|
+
# Number of packets that necessitated segmentation into smaller packets
|
|
3157
|
+
# by the device.
|
|
3158
|
+
# @rbs return: ::Integer
|
|
3159
|
+
# @return [Integer]
|
|
3160
|
+
# @see AttributeSets::Qstats::TxHwGsoPackets
|
|
3161
|
+
def tx_hw_gso_packets: () -> ::Integer
|
|
3162
|
+
|
|
3163
|
+
# See `tx-hw-gso-packets`.
|
|
3164
|
+
# @rbs return: ::Integer
|
|
3165
|
+
# @return [Integer]
|
|
3166
|
+
# @see AttributeSets::Qstats::TxHwGsoBytes
|
|
3167
|
+
def tx_hw_gso_bytes: () -> ::Integer
|
|
3168
|
+
|
|
3169
|
+
# Number of wire-sized packets generated by processing
|
|
3170
|
+
# `tx-hw-gso-packets`
|
|
3171
|
+
# @rbs return: ::Integer
|
|
3172
|
+
# @return [Integer]
|
|
3173
|
+
# @see AttributeSets::Qstats::TxHwGsoWirePackets
|
|
3174
|
+
def tx_hw_gso_wire_packets: () -> ::Integer
|
|
3175
|
+
|
|
3176
|
+
# See `tx-hw-gso-wire-packets`.
|
|
3177
|
+
# @rbs return: ::Integer
|
|
3178
|
+
# @return [Integer]
|
|
3179
|
+
# @see AttributeSets::Qstats::TxHwGsoWireBytes
|
|
3180
|
+
def tx_hw_gso_wire_bytes: () -> ::Integer
|
|
3181
|
+
|
|
3182
|
+
# Number of the packets dropped by the device due to the transmit
|
|
3183
|
+
# packets bitrate exceeding the device rate limit.
|
|
3184
|
+
# @rbs return: ::Integer
|
|
3185
|
+
# @return [Integer]
|
|
3186
|
+
# @see AttributeSets::Qstats::TxHwDropRatelimits
|
|
3187
|
+
def tx_hw_drop_ratelimits: () -> ::Integer
|
|
3188
|
+
|
|
3189
|
+
# Number of times driver paused accepting new tx packets
|
|
3190
|
+
# from the stack to this queue, because the queue was full.
|
|
3191
|
+
# Note that if BQL is supported and enabled on the device
|
|
3192
|
+
# the networking stack will avoid queuing a lot of data at once.
|
|
3193
|
+
# @rbs return: ::Integer
|
|
3194
|
+
# @return [Integer]
|
|
3195
|
+
# @see AttributeSets::Qstats::TxStop
|
|
3196
|
+
def tx_stop: () -> ::Integer
|
|
3197
|
+
|
|
3198
|
+
# Number of times driver re-started accepting send
|
|
3199
|
+
# requests to this queue from the stack.
|
|
3200
|
+
# @rbs return: ::Integer
|
|
3201
|
+
# @return [Integer]
|
|
3202
|
+
# @see AttributeSets::Qstats::TxWake
|
|
3203
|
+
def tx_wake: () -> ::Integer
|
|
3204
|
+
end
|
|
3205
|
+
|
|
3206
|
+
# Bind dmabuf to netdev
|
|
3207
|
+
#
|
|
3208
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
3209
|
+
class DoBindRxRequest < ::Nl::Genl::Message
|
|
3210
|
+
TYPE: ::Integer
|
|
3211
|
+
|
|
3212
|
+
FIXED_HEADER: untyped
|
|
3213
|
+
|
|
3214
|
+
ATTRIBUTE_SET: untyped
|
|
3215
|
+
|
|
3216
|
+
ATTRIBUTES: untyped
|
|
3217
|
+
|
|
3218
|
+
# netdev ifindex to bind the dmabuf to.
|
|
3219
|
+
# @rbs return: ::Integer
|
|
3220
|
+
# @return [Integer]
|
|
3221
|
+
# @see AttributeSets::Dmabuf::Ifindex
|
|
3222
|
+
def ifindex: () -> ::Integer
|
|
3223
|
+
|
|
3224
|
+
# receive queues to bind the dmabuf to.
|
|
3225
|
+
# @rbs return: ::Array[AttributeSets::QueueId]
|
|
3226
|
+
# @return [Array<AttributeSets::QueueId>]
|
|
3227
|
+
# @see AttributeSets::Dmabuf::Queues
|
|
3228
|
+
def queues: () -> ::Array[AttributeSets::QueueId]
|
|
3229
|
+
|
|
3230
|
+
# dmabuf file descriptor to bind.
|
|
3231
|
+
# @rbs return: ::Integer
|
|
3232
|
+
# @return [Integer]
|
|
3233
|
+
# @see AttributeSets::Dmabuf::Fd
|
|
3234
|
+
def fd: () -> ::Integer
|
|
3235
|
+
end
|
|
3236
|
+
|
|
3237
|
+
# Bind dmabuf to netdev
|
|
3238
|
+
#
|
|
3239
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
3240
|
+
class DoBindRxReply < ::Nl::Genl::Message
|
|
3241
|
+
TYPE: ::Integer
|
|
3242
|
+
|
|
3243
|
+
FIXED_HEADER: untyped
|
|
3244
|
+
|
|
3245
|
+
ATTRIBUTE_SET: untyped
|
|
3246
|
+
|
|
3247
|
+
ATTRIBUTES: untyped
|
|
3248
|
+
|
|
3249
|
+
# id of the dmabuf binding
|
|
3250
|
+
# @rbs return: ::Integer
|
|
3251
|
+
# @return [Integer]
|
|
3252
|
+
# @see AttributeSets::Dmabuf::Id
|
|
3253
|
+
def id: () -> ::Integer
|
|
3254
|
+
end
|
|
3255
|
+
|
|
3256
|
+
# Set configurable NAPI instance settings.
|
|
3257
|
+
#
|
|
3258
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
3259
|
+
class DoNapiSetRequest < ::Nl::Genl::Message
|
|
3260
|
+
TYPE: ::Integer
|
|
3261
|
+
|
|
3262
|
+
FIXED_HEADER: untyped
|
|
3263
|
+
|
|
3264
|
+
ATTRIBUTE_SET: untyped
|
|
3265
|
+
|
|
3266
|
+
ATTRIBUTES: untyped
|
|
3267
|
+
|
|
3268
|
+
# ID of the NAPI instance.
|
|
3269
|
+
# @rbs return: ::Integer
|
|
3270
|
+
# @return [Integer]
|
|
3271
|
+
# @see AttributeSets::Napi::Id
|
|
3272
|
+
def id: () -> ::Integer
|
|
3273
|
+
|
|
3274
|
+
# The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
3275
|
+
# @rbs return: ::Integer
|
|
3276
|
+
# @return [Integer]
|
|
3277
|
+
# @see AttributeSets::Napi::DeferHardIrqs
|
|
3278
|
+
def defer_hard_irqs: () -> ::Integer
|
|
3279
|
+
|
|
3280
|
+
# The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
3281
|
+
# @rbs return: ::Integer
|
|
3282
|
+
# @return [Integer]
|
|
3283
|
+
# @see AttributeSets::Napi::GroFlushTimeout
|
|
3284
|
+
def gro_flush_timeout: () -> ::Integer
|
|
3285
|
+
|
|
3286
|
+
# The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
3287
|
+
# @rbs return: ::Integer
|
|
3288
|
+
# @return [Integer]
|
|
3289
|
+
# @see AttributeSets::Napi::IrqSuspendTimeout
|
|
3290
|
+
def irq_suspend_timeout: () -> ::Integer
|
|
3291
|
+
|
|
3292
|
+
# Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
3293
|
+
#
|
|
3294
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
3295
|
+
# @rbs return: ::Integer
|
|
3296
|
+
# @return [Integer]
|
|
3297
|
+
# @see AttributeSets::Napi::Threaded
|
|
3298
|
+
def threaded: () -> ::Integer
|
|
3299
|
+
end
|
|
3300
|
+
|
|
3301
|
+
# Bind dmabuf to netdev for TX
|
|
3302
|
+
class DoBindTxRequest < ::Nl::Genl::Message
|
|
3303
|
+
TYPE: ::Integer
|
|
3304
|
+
|
|
3305
|
+
FIXED_HEADER: untyped
|
|
3306
|
+
|
|
3307
|
+
ATTRIBUTE_SET: untyped
|
|
3308
|
+
|
|
3309
|
+
ATTRIBUTES: untyped
|
|
3310
|
+
|
|
3311
|
+
# netdev ifindex to bind the dmabuf to.
|
|
3312
|
+
# @rbs return: ::Integer
|
|
3313
|
+
# @return [Integer]
|
|
3314
|
+
# @see AttributeSets::Dmabuf::Ifindex
|
|
3315
|
+
def ifindex: () -> ::Integer
|
|
3316
|
+
|
|
3317
|
+
# dmabuf file descriptor to bind.
|
|
3318
|
+
# @rbs return: ::Integer
|
|
3319
|
+
# @return [Integer]
|
|
3320
|
+
# @see AttributeSets::Dmabuf::Fd
|
|
3321
|
+
def fd: () -> ::Integer
|
|
3322
|
+
end
|
|
3323
|
+
|
|
3324
|
+
# Bind dmabuf to netdev for TX
|
|
3325
|
+
class DoBindTxReply < ::Nl::Genl::Message
|
|
3326
|
+
TYPE: ::Integer
|
|
3327
|
+
|
|
3328
|
+
FIXED_HEADER: untyped
|
|
3329
|
+
|
|
3330
|
+
ATTRIBUTE_SET: untyped
|
|
3331
|
+
|
|
3332
|
+
ATTRIBUTES: untyped
|
|
3333
|
+
|
|
3334
|
+
# id of the dmabuf binding
|
|
3335
|
+
# @rbs return: ::Integer
|
|
3336
|
+
# @return [Integer]
|
|
3337
|
+
# @see AttributeSets::Dmabuf::Id
|
|
3338
|
+
def id: () -> ::Integer
|
|
3339
|
+
end
|
|
3340
|
+
|
|
3341
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
3342
|
+
# is supported depends on the device and the driver.
|
|
3343
|
+
#
|
|
3344
|
+
#
|
|
3345
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
3346
|
+
class DoQueueCreateRequest < ::Nl::Genl::Message
|
|
3347
|
+
TYPE: ::Integer
|
|
3348
|
+
|
|
3349
|
+
FIXED_HEADER: untyped
|
|
3350
|
+
|
|
3351
|
+
ATTRIBUTE_SET: untyped
|
|
3352
|
+
|
|
3353
|
+
ATTRIBUTES: untyped
|
|
3354
|
+
|
|
3355
|
+
# ifindex of the netdevice to which the queue belongs.
|
|
3356
|
+
# @rbs return: ::Integer
|
|
3357
|
+
# @return [Integer]
|
|
3358
|
+
# @see AttributeSets::Queue::Ifindex
|
|
3359
|
+
def ifindex: () -> ::Integer
|
|
3360
|
+
|
|
3361
|
+
# Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
3362
|
+
#
|
|
3363
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
3364
|
+
# @rbs return: ::Integer
|
|
3365
|
+
# @return [Integer]
|
|
3366
|
+
# @see AttributeSets::Queue::Type
|
|
3367
|
+
def type: () -> ::Integer
|
|
3368
|
+
|
|
3369
|
+
# A queue from a virtual device can have a lease which refers to
|
|
3370
|
+
# another queue from a physical device. This is useful for memory
|
|
3371
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
3372
|
+
# to allow applications to bind against virtual devices in containers.
|
|
3373
|
+
# @rbs return: AttributeSets::Lease
|
|
3374
|
+
# @return [AttributeSets::Lease]
|
|
3375
|
+
# @see AttributeSets::Queue::Lease
|
|
3376
|
+
def lease: () -> AttributeSets::Lease
|
|
3377
|
+
end
|
|
3378
|
+
|
|
3379
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
3380
|
+
# is supported depends on the device and the driver.
|
|
3381
|
+
#
|
|
3382
|
+
#
|
|
3383
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
3384
|
+
class DoQueueCreateReply < ::Nl::Genl::Message
|
|
3385
|
+
TYPE: ::Integer
|
|
3386
|
+
|
|
3387
|
+
FIXED_HEADER: untyped
|
|
3388
|
+
|
|
3389
|
+
ATTRIBUTE_SET: untyped
|
|
3390
|
+
|
|
3391
|
+
ATTRIBUTES: untyped
|
|
3392
|
+
|
|
3393
|
+
# Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
3394
|
+
# @rbs return: ::Integer
|
|
3395
|
+
# @return [Integer]
|
|
3396
|
+
# @see AttributeSets::Queue::Id
|
|
3397
|
+
def id: () -> ::Integer
|
|
3398
|
+
end
|
|
3399
|
+
end
|
|
3400
|
+
|
|
3401
|
+
module Notifications
|
|
3402
|
+
# Notification about device appearing.
|
|
3403
|
+
#
|
|
3404
|
+
# Multicast group: `mgmt`.
|
|
3405
|
+
class DevAddNtf < ::Nl::Genl::Message
|
|
3406
|
+
TYPE: ::Integer
|
|
3407
|
+
|
|
3408
|
+
FIXED_HEADER: untyped
|
|
3409
|
+
|
|
3410
|
+
ATTRIBUTE_SET: untyped
|
|
3411
|
+
|
|
3412
|
+
ATTRIBUTES: untyped
|
|
3413
|
+
|
|
3414
|
+
# netdev ifindex
|
|
3415
|
+
# @rbs return: ::Integer
|
|
3416
|
+
# @return [Integer]
|
|
3417
|
+
# @see AttributeSets::Dev::Ifindex
|
|
3418
|
+
def ifindex: () -> ::Integer
|
|
3419
|
+
|
|
3420
|
+
# Bitmask of enabled xdp-features.
|
|
3421
|
+
#
|
|
3422
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
3423
|
+
# @rbs return: ::Integer
|
|
3424
|
+
# @return [Integer]
|
|
3425
|
+
# @see AttributeSets::Dev::XdpFeatures
|
|
3426
|
+
def xdp_features: () -> ::Integer
|
|
3427
|
+
|
|
3428
|
+
# max fragment count supported by ZC driver
|
|
3429
|
+
# @rbs return: ::Integer
|
|
3430
|
+
# @return [Integer]
|
|
3431
|
+
# @see AttributeSets::Dev::XdpZcMaxSegs
|
|
3432
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
3433
|
+
|
|
3434
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
3435
|
+
#
|
|
3436
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
3437
|
+
# @rbs return: ::Integer
|
|
3438
|
+
# @return [Integer]
|
|
3439
|
+
# @see AttributeSets::Dev::XdpRxMetadataFeatures
|
|
3440
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
3441
|
+
|
|
3442
|
+
# Bitmask of enabled AF_XDP features.
|
|
3443
|
+
#
|
|
3444
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
3445
|
+
# @rbs return: ::Integer
|
|
3446
|
+
# @return [Integer]
|
|
3447
|
+
# @see AttributeSets::Dev::XskFeatures
|
|
3448
|
+
def xsk_features: () -> ::Integer
|
|
3449
|
+
end
|
|
3450
|
+
|
|
3451
|
+
# Notification about device disappearing.
|
|
3452
|
+
#
|
|
3453
|
+
# Multicast group: `mgmt`.
|
|
3454
|
+
class DevDelNtf < ::Nl::Genl::Message
|
|
3455
|
+
TYPE: ::Integer
|
|
3456
|
+
|
|
3457
|
+
FIXED_HEADER: untyped
|
|
3458
|
+
|
|
3459
|
+
ATTRIBUTE_SET: untyped
|
|
3460
|
+
|
|
3461
|
+
ATTRIBUTES: untyped
|
|
3462
|
+
|
|
3463
|
+
# netdev ifindex
|
|
3464
|
+
# @rbs return: ::Integer
|
|
3465
|
+
# @return [Integer]
|
|
3466
|
+
# @see AttributeSets::Dev::Ifindex
|
|
3467
|
+
def ifindex: () -> ::Integer
|
|
3468
|
+
|
|
3469
|
+
# Bitmask of enabled xdp-features.
|
|
3470
|
+
#
|
|
3471
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
3472
|
+
# @rbs return: ::Integer
|
|
3473
|
+
# @return [Integer]
|
|
3474
|
+
# @see AttributeSets::Dev::XdpFeatures
|
|
3475
|
+
def xdp_features: () -> ::Integer
|
|
3476
|
+
|
|
3477
|
+
# max fragment count supported by ZC driver
|
|
3478
|
+
# @rbs return: ::Integer
|
|
3479
|
+
# @return [Integer]
|
|
3480
|
+
# @see AttributeSets::Dev::XdpZcMaxSegs
|
|
3481
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
3482
|
+
|
|
3483
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
3484
|
+
#
|
|
3485
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
3486
|
+
# @rbs return: ::Integer
|
|
3487
|
+
# @return [Integer]
|
|
3488
|
+
# @see AttributeSets::Dev::XdpRxMetadataFeatures
|
|
3489
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
3490
|
+
|
|
3491
|
+
# Bitmask of enabled AF_XDP features.
|
|
3492
|
+
#
|
|
3493
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
3494
|
+
# @rbs return: ::Integer
|
|
3495
|
+
# @return [Integer]
|
|
3496
|
+
# @see AttributeSets::Dev::XskFeatures
|
|
3497
|
+
def xsk_features: () -> ::Integer
|
|
3498
|
+
end
|
|
3499
|
+
|
|
3500
|
+
# Notification about device configuration being changed.
|
|
3501
|
+
#
|
|
3502
|
+
# Multicast group: `mgmt`.
|
|
3503
|
+
class DevChangeNtf < ::Nl::Genl::Message
|
|
3504
|
+
TYPE: ::Integer
|
|
3505
|
+
|
|
3506
|
+
FIXED_HEADER: untyped
|
|
3507
|
+
|
|
3508
|
+
ATTRIBUTE_SET: untyped
|
|
3509
|
+
|
|
3510
|
+
ATTRIBUTES: untyped
|
|
3511
|
+
|
|
3512
|
+
# netdev ifindex
|
|
3513
|
+
# @rbs return: ::Integer
|
|
3514
|
+
# @return [Integer]
|
|
3515
|
+
# @see AttributeSets::Dev::Ifindex
|
|
3516
|
+
def ifindex: () -> ::Integer
|
|
3517
|
+
|
|
3518
|
+
# Bitmask of enabled xdp-features.
|
|
3519
|
+
#
|
|
3520
|
+
# Known flags are defined in {Flags::XdpAct}.
|
|
3521
|
+
# @rbs return: ::Integer
|
|
3522
|
+
# @return [Integer]
|
|
3523
|
+
# @see AttributeSets::Dev::XdpFeatures
|
|
3524
|
+
def xdp_features: () -> ::Integer
|
|
3525
|
+
|
|
3526
|
+
# max fragment count supported by ZC driver
|
|
3527
|
+
# @rbs return: ::Integer
|
|
3528
|
+
# @return [Integer]
|
|
3529
|
+
# @see AttributeSets::Dev::XdpZcMaxSegs
|
|
3530
|
+
def xdp_zc_max_segs: () -> ::Integer
|
|
3531
|
+
|
|
3532
|
+
# Bitmask of supported XDP receive metadata features. See {https://docs.kernel.org/networking/xdp-rx-metadata.html Documentation/networking/xdp-rx-metadata.rst} for more details.
|
|
3533
|
+
#
|
|
3534
|
+
# Known flags are defined in {Flags::XdpRxMetadata}.
|
|
3535
|
+
# @rbs return: ::Integer
|
|
3536
|
+
# @return [Integer]
|
|
3537
|
+
# @see AttributeSets::Dev::XdpRxMetadataFeatures
|
|
3538
|
+
def xdp_rx_metadata_features: () -> ::Integer
|
|
3539
|
+
|
|
3540
|
+
# Bitmask of enabled AF_XDP features.
|
|
3541
|
+
#
|
|
3542
|
+
# Known flags are defined in {Flags::XskFlags}.
|
|
3543
|
+
# @rbs return: ::Integer
|
|
3544
|
+
# @return [Integer]
|
|
3545
|
+
# @see AttributeSets::Dev::XskFeatures
|
|
3546
|
+
def xsk_features: () -> ::Integer
|
|
3547
|
+
end
|
|
3548
|
+
|
|
3549
|
+
# Notification about page pool appearing.
|
|
3550
|
+
#
|
|
3551
|
+
# Multicast group: `page-pool`.
|
|
3552
|
+
class PagePoolAddNtf < ::Nl::Genl::Message
|
|
3553
|
+
TYPE: ::Integer
|
|
3554
|
+
|
|
3555
|
+
FIXED_HEADER: untyped
|
|
3556
|
+
|
|
3557
|
+
ATTRIBUTE_SET: untyped
|
|
3558
|
+
|
|
3559
|
+
ATTRIBUTES: untyped
|
|
3560
|
+
|
|
3561
|
+
# Unique ID of a Page Pool instance.
|
|
3562
|
+
# @rbs return: ::Integer
|
|
3563
|
+
# @return [Integer]
|
|
3564
|
+
# @see AttributeSets::PagePool::Id
|
|
3565
|
+
def id: () -> ::Integer
|
|
3566
|
+
|
|
3567
|
+
# ifindex of the netdev to which the pool belongs.
|
|
3568
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
3569
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
3570
|
+
# because they wait for all memory to be returned).
|
|
3571
|
+
# @rbs return: ::Integer
|
|
3572
|
+
# @return [Integer]
|
|
3573
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
3574
|
+
def ifindex: () -> ::Integer
|
|
3575
|
+
|
|
3576
|
+
# Id of NAPI using this Page Pool instance.
|
|
3577
|
+
# @rbs return: ::Integer
|
|
3578
|
+
# @return [Integer]
|
|
3579
|
+
# @see AttributeSets::PagePool::NapiId
|
|
3580
|
+
def napi_id: () -> ::Integer
|
|
3581
|
+
|
|
3582
|
+
# Number of outstanding references to this page pool (allocated
|
|
3583
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
3584
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
3585
|
+
# ring, the page pool cache, etc.
|
|
3586
|
+
# @rbs return: ::Integer
|
|
3587
|
+
# @return [Integer]
|
|
3588
|
+
# @see AttributeSets::PagePool::Inflight
|
|
3589
|
+
def inflight: () -> ::Integer
|
|
3590
|
+
|
|
3591
|
+
# Amount of memory held by inflight pages.
|
|
3592
|
+
# @rbs return: ::Integer
|
|
3593
|
+
# @return [Integer]
|
|
3594
|
+
# @see AttributeSets::PagePool::InflightMem
|
|
3595
|
+
def inflight_mem: () -> ::Integer
|
|
3596
|
+
|
|
3597
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
3598
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
3599
|
+
# allocate memory.
|
|
3600
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
3601
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
3602
|
+
# "re-attached", they are just waiting to disappear.
|
|
3603
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
3604
|
+
# can still be used to allocate new memory.
|
|
3605
|
+
# @rbs return: ::Integer
|
|
3606
|
+
# @return [Integer]
|
|
3607
|
+
# @see AttributeSets::PagePool::DetachTime
|
|
3608
|
+
def detach_time: () -> ::Integer
|
|
3609
|
+
|
|
3610
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
3611
|
+
# @rbs return: ::Integer
|
|
3612
|
+
# @return [Integer]
|
|
3613
|
+
# @see AttributeSets::PagePool::Dmabuf
|
|
3614
|
+
def dmabuf: () -> ::Integer
|
|
3615
|
+
|
|
3616
|
+
# io-uring memory provider information.
|
|
3617
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
3618
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
3619
|
+
# @see AttributeSets::PagePool::IoUring
|
|
3620
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
3621
|
+
end
|
|
3622
|
+
|
|
3623
|
+
# Notification about page pool disappearing.
|
|
3624
|
+
#
|
|
3625
|
+
# Multicast group: `page-pool`.
|
|
3626
|
+
class PagePoolDelNtf < ::Nl::Genl::Message
|
|
3627
|
+
TYPE: ::Integer
|
|
3628
|
+
|
|
3629
|
+
FIXED_HEADER: untyped
|
|
3630
|
+
|
|
3631
|
+
ATTRIBUTE_SET: untyped
|
|
3632
|
+
|
|
3633
|
+
ATTRIBUTES: untyped
|
|
3634
|
+
|
|
3635
|
+
# Unique ID of a Page Pool instance.
|
|
3636
|
+
# @rbs return: ::Integer
|
|
3637
|
+
# @return [Integer]
|
|
3638
|
+
# @see AttributeSets::PagePool::Id
|
|
3639
|
+
def id: () -> ::Integer
|
|
3640
|
+
|
|
3641
|
+
# ifindex of the netdev to which the pool belongs.
|
|
3642
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
3643
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
3644
|
+
# because they wait for all memory to be returned).
|
|
3645
|
+
# @rbs return: ::Integer
|
|
3646
|
+
# @return [Integer]
|
|
3647
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
3648
|
+
def ifindex: () -> ::Integer
|
|
3649
|
+
|
|
3650
|
+
# Id of NAPI using this Page Pool instance.
|
|
3651
|
+
# @rbs return: ::Integer
|
|
3652
|
+
# @return [Integer]
|
|
3653
|
+
# @see AttributeSets::PagePool::NapiId
|
|
3654
|
+
def napi_id: () -> ::Integer
|
|
3655
|
+
|
|
3656
|
+
# Number of outstanding references to this page pool (allocated
|
|
3657
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
3658
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
3659
|
+
# ring, the page pool cache, etc.
|
|
3660
|
+
# @rbs return: ::Integer
|
|
3661
|
+
# @return [Integer]
|
|
3662
|
+
# @see AttributeSets::PagePool::Inflight
|
|
3663
|
+
def inflight: () -> ::Integer
|
|
3664
|
+
|
|
3665
|
+
# Amount of memory held by inflight pages.
|
|
3666
|
+
# @rbs return: ::Integer
|
|
3667
|
+
# @return [Integer]
|
|
3668
|
+
# @see AttributeSets::PagePool::InflightMem
|
|
3669
|
+
def inflight_mem: () -> ::Integer
|
|
3670
|
+
|
|
3671
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
3672
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
3673
|
+
# allocate memory.
|
|
3674
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
3675
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
3676
|
+
# "re-attached", they are just waiting to disappear.
|
|
3677
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
3678
|
+
# can still be used to allocate new memory.
|
|
3679
|
+
# @rbs return: ::Integer
|
|
3680
|
+
# @return [Integer]
|
|
3681
|
+
# @see AttributeSets::PagePool::DetachTime
|
|
3682
|
+
def detach_time: () -> ::Integer
|
|
3683
|
+
|
|
3684
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
3685
|
+
# @rbs return: ::Integer
|
|
3686
|
+
# @return [Integer]
|
|
3687
|
+
# @see AttributeSets::PagePool::Dmabuf
|
|
3688
|
+
def dmabuf: () -> ::Integer
|
|
3689
|
+
|
|
3690
|
+
# io-uring memory provider information.
|
|
3691
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
3692
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
3693
|
+
# @see AttributeSets::PagePool::IoUring
|
|
3694
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
3695
|
+
end
|
|
3696
|
+
|
|
3697
|
+
# Notification about page pool configuration being changed.
|
|
3698
|
+
#
|
|
3699
|
+
# Multicast group: `page-pool`.
|
|
3700
|
+
class PagePoolChangeNtf < ::Nl::Genl::Message
|
|
3701
|
+
TYPE: ::Integer
|
|
3702
|
+
|
|
3703
|
+
FIXED_HEADER: untyped
|
|
3704
|
+
|
|
3705
|
+
ATTRIBUTE_SET: untyped
|
|
3706
|
+
|
|
3707
|
+
ATTRIBUTES: untyped
|
|
3708
|
+
|
|
3709
|
+
# Unique ID of a Page Pool instance.
|
|
3710
|
+
# @rbs return: ::Integer
|
|
3711
|
+
# @return [Integer]
|
|
3712
|
+
# @see AttributeSets::PagePool::Id
|
|
3713
|
+
def id: () -> ::Integer
|
|
3714
|
+
|
|
3715
|
+
# ifindex of the netdev to which the pool belongs.
|
|
3716
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
3717
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
3718
|
+
# because they wait for all memory to be returned).
|
|
3719
|
+
# @rbs return: ::Integer
|
|
3720
|
+
# @return [Integer]
|
|
3721
|
+
# @see AttributeSets::PagePool::Ifindex
|
|
3722
|
+
def ifindex: () -> ::Integer
|
|
3723
|
+
|
|
3724
|
+
# Id of NAPI using this Page Pool instance.
|
|
3725
|
+
# @rbs return: ::Integer
|
|
3726
|
+
# @return [Integer]
|
|
3727
|
+
# @see AttributeSets::PagePool::NapiId
|
|
3728
|
+
def napi_id: () -> ::Integer
|
|
3729
|
+
|
|
3730
|
+
# Number of outstanding references to this page pool (allocated
|
|
3731
|
+
# but yet to be freed pages). Allocated pages may be held in
|
|
3732
|
+
# socket receive queues, driver receive ring, page pool recycling
|
|
3733
|
+
# ring, the page pool cache, etc.
|
|
3734
|
+
# @rbs return: ::Integer
|
|
3735
|
+
# @return [Integer]
|
|
3736
|
+
# @see AttributeSets::PagePool::Inflight
|
|
3737
|
+
def inflight: () -> ::Integer
|
|
3738
|
+
|
|
3739
|
+
# Amount of memory held by inflight pages.
|
|
3740
|
+
# @rbs return: ::Integer
|
|
3741
|
+
# @return [Integer]
|
|
3742
|
+
# @see AttributeSets::PagePool::InflightMem
|
|
3743
|
+
def inflight_mem: () -> ::Integer
|
|
3744
|
+
|
|
3745
|
+
# Seconds in CLOCK_BOOTTIME of when Page Pool was detached by
|
|
3746
|
+
# the driver. Once detached Page Pool can no longer be used to
|
|
3747
|
+
# allocate memory.
|
|
3748
|
+
# Page Pools wait for all the memory allocated from them to be freed
|
|
3749
|
+
# before truly disappearing. "Detached" Page Pools cannot be
|
|
3750
|
+
# "re-attached", they are just waiting to disappear.
|
|
3751
|
+
# Attribute is absent if Page Pool has not been detached, and
|
|
3752
|
+
# can still be used to allocate new memory.
|
|
3753
|
+
# @rbs return: ::Integer
|
|
3754
|
+
# @return [Integer]
|
|
3755
|
+
# @see AttributeSets::PagePool::DetachTime
|
|
3756
|
+
def detach_time: () -> ::Integer
|
|
3757
|
+
|
|
3758
|
+
# ID of the dmabuf this page-pool is attached to.
|
|
3759
|
+
# @rbs return: ::Integer
|
|
3760
|
+
# @return [Integer]
|
|
3761
|
+
# @see AttributeSets::PagePool::Dmabuf
|
|
3762
|
+
def dmabuf: () -> ::Integer
|
|
3763
|
+
|
|
3764
|
+
# io-uring memory provider information.
|
|
3765
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
3766
|
+
# @return [AttributeSets::IoUringProviderInfo]
|
|
3767
|
+
# @see AttributeSets::PagePool::IoUring
|
|
3768
|
+
def io_uring: () -> AttributeSets::IoUringProviderInfo
|
|
3769
|
+
end
|
|
3770
|
+
end
|
|
3771
|
+
|
|
3772
|
+
# @private
|
|
3773
|
+
NOTIFICATIONS: Hash[::Integer, ::Class]
|
|
3774
|
+
|
|
3775
|
+
# Get / dump information about a netdev.
|
|
3776
|
+
# @rbs (?ifindex: ::Integer) -> Messages::DoDevGetReply
|
|
3777
|
+
# @param [Hash] args
|
|
3778
|
+
# @option args [Integer] ifindex netdev ifindex
|
|
3779
|
+
# @return [Messages::DoDevGetReply]
|
|
3780
|
+
# @see Messages::DoDevGetRequest
|
|
3781
|
+
def do_dev_get: (?ifindex: ::Integer) -> Messages::DoDevGetReply
|
|
3782
|
+
|
|
3783
|
+
# Get / dump information about a netdev.
|
|
3784
|
+
# @rbs () -> Array[Messages::DumpDevGetReply]
|
|
3785
|
+
# | () { (Messages::DumpDevGetReply) -> void } -> void
|
|
3786
|
+
# @overload dump_dev_get(**args)
|
|
3787
|
+
# Returns an array when no block is given.
|
|
3788
|
+
# @param [Hash] args
|
|
3789
|
+
# @return [Array<Messages::DumpDevGetReply>]
|
|
3790
|
+
# @overload dump_dev_get(**args, &block)
|
|
3791
|
+
# Yields each reply when a block is given.
|
|
3792
|
+
# @param [Hash] args
|
|
3793
|
+
# @yieldparam [Messages::DumpDevGetReply] reply
|
|
3794
|
+
# @return [void]
|
|
3795
|
+
# @see Messages::DumpDevGetRequest
|
|
3796
|
+
def dump_dev_get: () -> Array[Messages::DumpDevGetReply]
|
|
3797
|
+
| () { (Messages::DumpDevGetReply) -> void } -> void
|
|
3798
|
+
|
|
3799
|
+
# Get / dump information about Page Pools.
|
|
3800
|
+
# Only Page Pools associated by the driver with a net_device
|
|
3801
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
3802
|
+
# no longer exists.
|
|
3803
|
+
# @rbs (?id: ::Integer) -> Messages::DoPagePoolGetReply
|
|
3804
|
+
# @param [Hash] args
|
|
3805
|
+
# @option args [Integer] id Unique ID of a Page Pool instance.
|
|
3806
|
+
# @return [Messages::DoPagePoolGetReply]
|
|
3807
|
+
# @see Messages::DoPagePoolGetRequest
|
|
3808
|
+
def do_page_pool_get: (?id: ::Integer) -> Messages::DoPagePoolGetReply
|
|
3809
|
+
|
|
3810
|
+
# Get / dump information about Page Pools.
|
|
3811
|
+
# Only Page Pools associated by the driver with a net_device
|
|
3812
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
3813
|
+
# no longer exists.
|
|
3814
|
+
# @rbs (?ifindex: ::Integer) -> Array[Messages::DumpPagePoolGetReply]
|
|
3815
|
+
# | (?ifindex: ::Integer) { (Messages::DumpPagePoolGetReply) -> void } -> void
|
|
3816
|
+
# @overload dump_page_pool_get(**args)
|
|
3817
|
+
# Returns an array when no block is given.
|
|
3818
|
+
# @param [Hash] args
|
|
3819
|
+
# @option args [Integer] ifindex ifindex of the netdev to which the pool belongs.
|
|
3820
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
3821
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
3822
|
+
# because they wait for all memory to be returned).
|
|
3823
|
+
# @return [Array<Messages::DumpPagePoolGetReply>]
|
|
3824
|
+
# @overload dump_page_pool_get(**args, &block)
|
|
3825
|
+
# Yields each reply when a block is given.
|
|
3826
|
+
# @param [Hash] args
|
|
3827
|
+
# @option args [Integer] ifindex ifindex of the netdev to which the pool belongs.
|
|
3828
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
3829
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
3830
|
+
# because they wait for all memory to be returned).
|
|
3831
|
+
# @yieldparam [Messages::DumpPagePoolGetReply] reply
|
|
3832
|
+
# @return [void]
|
|
3833
|
+
# @see Messages::DumpPagePoolGetRequest
|
|
3834
|
+
def dump_page_pool_get: (?ifindex: ::Integer) -> Array[Messages::DumpPagePoolGetReply]
|
|
3835
|
+
| (?ifindex: ::Integer) { (Messages::DumpPagePoolGetReply) -> void } -> void
|
|
3836
|
+
|
|
3837
|
+
# Get page pool statistics.
|
|
3838
|
+
# @rbs (?info: (AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped])) -> Messages::DoPagePoolStatsGetReply
|
|
3839
|
+
# @param [Hash] args
|
|
3840
|
+
# @option args [AttributeSets::PagePoolInfo, Hash<Symbol, Object>] info Page pool identifying information.
|
|
3841
|
+
# @return [Messages::DoPagePoolStatsGetReply]
|
|
3842
|
+
# @see Messages::DoPagePoolStatsGetRequest
|
|
3843
|
+
def do_page_pool_stats_get: (?info: AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped]) -> Messages::DoPagePoolStatsGetReply
|
|
3844
|
+
|
|
3845
|
+
# Get page pool statistics.
|
|
3846
|
+
# @rbs (?info: (AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped])) -> Array[Messages::DumpPagePoolStatsGetReply]
|
|
3847
|
+
# | (?info: (AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped])) { (Messages::DumpPagePoolStatsGetReply) -> void } -> void
|
|
3848
|
+
# @overload dump_page_pool_stats_get(**args)
|
|
3849
|
+
# Returns an array when no block is given.
|
|
3850
|
+
# @param [Hash] args
|
|
3851
|
+
# @option args [AttributeSets::PagePoolInfo, Hash<Symbol, Object>] info Page pool identifying information.
|
|
3852
|
+
# @return [Array<Messages::DumpPagePoolStatsGetReply>]
|
|
3853
|
+
# @overload dump_page_pool_stats_get(**args, &block)
|
|
3854
|
+
# Yields each reply when a block is given.
|
|
3855
|
+
# @param [Hash] args
|
|
3856
|
+
# @option args [AttributeSets::PagePoolInfo, Hash<Symbol, Object>] info Page pool identifying information.
|
|
3857
|
+
# @yieldparam [Messages::DumpPagePoolStatsGetReply] reply
|
|
3858
|
+
# @return [void]
|
|
3859
|
+
# @see Messages::DumpPagePoolStatsGetRequest
|
|
3860
|
+
def dump_page_pool_stats_get: (?info: AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped]) -> Array[Messages::DumpPagePoolStatsGetReply]
|
|
3861
|
+
| (?info: AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped]) { (Messages::DumpPagePoolStatsGetReply) -> void } -> void
|
|
3862
|
+
|
|
3863
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
3864
|
+
# @rbs (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> Messages::DoQueueGetReply
|
|
3865
|
+
# @param [Hash] args
|
|
3866
|
+
# @option args [Integer] id Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
3867
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
3868
|
+
# @option args [Integer] type Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
3869
|
+
#
|
|
3870
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
3871
|
+
# @return [Messages::DoQueueGetReply]
|
|
3872
|
+
# @see Messages::DoQueueGetRequest
|
|
3873
|
+
def do_queue_get: (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> Messages::DoQueueGetReply
|
|
3874
|
+
|
|
3875
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
3876
|
+
# @rbs (?ifindex: ::Integer) -> Array[Messages::DumpQueueGetReply]
|
|
3877
|
+
# | (?ifindex: ::Integer) { (Messages::DumpQueueGetReply) -> void } -> void
|
|
3878
|
+
# @overload dump_queue_get(**args)
|
|
3879
|
+
# Returns an array when no block is given.
|
|
3880
|
+
# @param [Hash] args
|
|
3881
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
3882
|
+
# @return [Array<Messages::DumpQueueGetReply>]
|
|
3883
|
+
# @overload dump_queue_get(**args, &block)
|
|
3884
|
+
# Yields each reply when a block is given.
|
|
3885
|
+
# @param [Hash] args
|
|
3886
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
3887
|
+
# @yieldparam [Messages::DumpQueueGetReply] reply
|
|
3888
|
+
# @return [void]
|
|
3889
|
+
# @see Messages::DumpQueueGetRequest
|
|
3890
|
+
def dump_queue_get: (?ifindex: ::Integer) -> Array[Messages::DumpQueueGetReply]
|
|
3891
|
+
| (?ifindex: ::Integer) { (Messages::DumpQueueGetReply) -> void } -> void
|
|
3892
|
+
|
|
3893
|
+
# Get information about NAPI instances configured on the system.
|
|
3894
|
+
# @rbs (?id: ::Integer) -> Messages::DoNapiGetReply
|
|
3895
|
+
# @param [Hash] args
|
|
3896
|
+
# @option args [Integer] id ID of the NAPI instance.
|
|
3897
|
+
# @return [Messages::DoNapiGetReply]
|
|
3898
|
+
# @see Messages::DoNapiGetRequest
|
|
3899
|
+
def do_napi_get: (?id: ::Integer) -> Messages::DoNapiGetReply
|
|
3900
|
+
|
|
3901
|
+
# Get information about NAPI instances configured on the system.
|
|
3902
|
+
# @rbs (?ifindex: ::Integer) -> Array[Messages::DumpNapiGetReply]
|
|
3903
|
+
# | (?ifindex: ::Integer) { (Messages::DumpNapiGetReply) -> void } -> void
|
|
3904
|
+
# @overload dump_napi_get(**args)
|
|
3905
|
+
# Returns an array when no block is given.
|
|
3906
|
+
# @param [Hash] args
|
|
3907
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which NAPI instance belongs.
|
|
3908
|
+
# @return [Array<Messages::DumpNapiGetReply>]
|
|
3909
|
+
# @overload dump_napi_get(**args, &block)
|
|
3910
|
+
# Yields each reply when a block is given.
|
|
3911
|
+
# @param [Hash] args
|
|
3912
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which NAPI instance belongs.
|
|
3913
|
+
# @yieldparam [Messages::DumpNapiGetReply] reply
|
|
3914
|
+
# @return [void]
|
|
3915
|
+
# @see Messages::DumpNapiGetRequest
|
|
3916
|
+
def dump_napi_get: (?ifindex: ::Integer) -> Array[Messages::DumpNapiGetReply]
|
|
3917
|
+
| (?ifindex: ::Integer) { (Messages::DumpNapiGetReply) -> void } -> void
|
|
3918
|
+
|
|
3919
|
+
# Get / dump fine grained statistics. Which statistics are reported
|
|
3920
|
+
# depends on the device and the driver, and whether the driver stores
|
|
3921
|
+
# software counters per-queue.
|
|
3922
|
+
# @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> Array[Messages::DumpQstatsGetReply]
|
|
3923
|
+
# | (?ifindex: ::Integer, ?scope: ::Integer) { (Messages::DumpQstatsGetReply) -> void } -> void
|
|
3924
|
+
# @overload dump_qstats_get(**args)
|
|
3925
|
+
# Returns an array when no block is given.
|
|
3926
|
+
# @param [Hash] args
|
|
3927
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which stats belong.
|
|
3928
|
+
# @option args [Integer] scope What object type should be used to iterate over the stats.
|
|
3929
|
+
#
|
|
3930
|
+
#
|
|
3931
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
3932
|
+
# @return [Array<Messages::DumpQstatsGetReply>]
|
|
3933
|
+
# @overload dump_qstats_get(**args, &block)
|
|
3934
|
+
# Yields each reply when a block is given.
|
|
3935
|
+
# @param [Hash] args
|
|
3936
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which stats belong.
|
|
3937
|
+
# @option args [Integer] scope What object type should be used to iterate over the stats.
|
|
3938
|
+
#
|
|
3939
|
+
#
|
|
3940
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
3941
|
+
# @yieldparam [Messages::DumpQstatsGetReply] reply
|
|
3942
|
+
# @return [void]
|
|
3943
|
+
# @see Messages::DumpQstatsGetRequest
|
|
3944
|
+
def dump_qstats_get: (?ifindex: ::Integer, ?scope: ::Integer) -> Array[Messages::DumpQstatsGetReply]
|
|
3945
|
+
| (?ifindex: ::Integer, ?scope: ::Integer) { (Messages::DumpQstatsGetReply) -> void } -> void
|
|
3946
|
+
|
|
3947
|
+
# Bind dmabuf to netdev
|
|
3948
|
+
#
|
|
3949
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
3950
|
+
# @rbs (?ifindex: ::Integer, ?queues: ::Array[(AttributeSets::QueueId | ::Hash[::Symbol, untyped])], ?fd: ::Integer) -> Messages::DoBindRxReply
|
|
3951
|
+
# @param [Hash] args
|
|
3952
|
+
# @option args [Integer] ifindex netdev ifindex to bind the dmabuf to.
|
|
3953
|
+
# @option args [Array<AttributeSets::QueueId, Hash<Symbol, Object>>] queues receive queues to bind the dmabuf to.
|
|
3954
|
+
# @option args [Integer] fd dmabuf file descriptor to bind.
|
|
3955
|
+
# @return [Messages::DoBindRxReply]
|
|
3956
|
+
# @see Messages::DoBindRxRequest
|
|
3957
|
+
def do_bind_rx: (?ifindex: ::Integer, ?queues: ::Array[AttributeSets::QueueId | ::Hash[::Symbol, untyped]], ?fd: ::Integer) -> Messages::DoBindRxReply
|
|
3958
|
+
|
|
3959
|
+
# Set configurable NAPI instance settings.
|
|
3960
|
+
#
|
|
3961
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
3962
|
+
# @rbs (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> void
|
|
3963
|
+
# @param [Hash] args
|
|
3964
|
+
# @option args [Integer] id ID of the NAPI instance.
|
|
3965
|
+
# @option args [Integer] defer_hard_irqs The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
3966
|
+
# @option args [Integer] gro_flush_timeout The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
3967
|
+
# @option args [Integer] irq_suspend_timeout The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
3968
|
+
# @option args [Integer] threaded Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
3969
|
+
#
|
|
3970
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
3971
|
+
# @return [void]
|
|
3972
|
+
# @see Messages::DoNapiSetRequest
|
|
3973
|
+
def do_napi_set: (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> void
|
|
3974
|
+
|
|
3975
|
+
# Bind dmabuf to netdev for TX
|
|
3976
|
+
# @rbs (?ifindex: ::Integer, ?fd: ::Integer) -> Messages::DoBindTxReply
|
|
3977
|
+
# @param [Hash] args
|
|
3978
|
+
# @option args [Integer] ifindex netdev ifindex to bind the dmabuf to.
|
|
3979
|
+
# @option args [Integer] fd dmabuf file descriptor to bind.
|
|
3980
|
+
# @return [Messages::DoBindTxReply]
|
|
3981
|
+
# @see Messages::DoBindTxRequest
|
|
3982
|
+
def do_bind_tx: (?ifindex: ::Integer, ?fd: ::Integer) -> Messages::DoBindTxReply
|
|
3983
|
+
|
|
3984
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
3985
|
+
# is supported depends on the device and the driver.
|
|
3986
|
+
#
|
|
3987
|
+
#
|
|
3988
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
3989
|
+
# @rbs (?ifindex: ::Integer, ?type: ::Integer, ?lease: (AttributeSets::Lease | ::Hash[::Symbol, untyped])) -> Messages::DoQueueCreateReply
|
|
3990
|
+
# @param [Hash] args
|
|
3991
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
3992
|
+
# @option args [Integer] type Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
3993
|
+
#
|
|
3994
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
3995
|
+
# @option args [AttributeSets::Lease, Hash<Symbol, Object>] lease A queue from a virtual device can have a lease which refers to
|
|
3996
|
+
# another queue from a physical device. This is useful for memory
|
|
3997
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
3998
|
+
# to allow applications to bind against virtual devices in containers.
|
|
3999
|
+
# @return [Messages::DoQueueCreateReply]
|
|
4000
|
+
# @see Messages::DoQueueCreateRequest
|
|
4001
|
+
def do_queue_create: (?ifindex: ::Integer, ?type: ::Integer, ?lease: AttributeSets::Lease | ::Hash[::Symbol, untyped]) -> Messages::DoQueueCreateReply
|
|
4002
|
+
|
|
4003
|
+
class AsyncOperations
|
|
4004
|
+
# @private
|
|
4005
|
+
def initialize: () ?{ (?) -> untyped } -> untyped
|
|
4006
|
+
|
|
4007
|
+
# Get / dump information about a netdev.
|
|
4008
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Future[Messages::DoDevGetReply]
|
|
4009
|
+
# @param [Hash] args
|
|
4010
|
+
# @option args [Integer] ifindex netdev ifindex
|
|
4011
|
+
# @return [Nl::Async::Future<Messages::DoDevGetReply>]
|
|
4012
|
+
# @see Messages::DoDevGetRequest
|
|
4013
|
+
def do_dev_get: (?ifindex: ::Integer) -> ::Nl::Async::Future[Messages::DoDevGetReply]
|
|
4014
|
+
|
|
4015
|
+
# Get / dump information about a netdev.
|
|
4016
|
+
# @rbs () -> ::Nl::Async::Stream[Messages::DumpDevGetReply]
|
|
4017
|
+
# @param [Hash] args
|
|
4018
|
+
# @return [Nl::Async::Stream<Messages::DumpDevGetReply>]
|
|
4019
|
+
# @see Messages::DumpDevGetRequest
|
|
4020
|
+
def dump_dev_get: () -> ::Nl::Async::Stream[Messages::DumpDevGetReply]
|
|
4021
|
+
|
|
4022
|
+
# Get / dump information about Page Pools.
|
|
4023
|
+
# Only Page Pools associated by the driver with a net_device
|
|
4024
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
4025
|
+
# no longer exists.
|
|
4026
|
+
# @rbs (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoPagePoolGetReply]
|
|
4027
|
+
# @param [Hash] args
|
|
4028
|
+
# @option args [Integer] id Unique ID of a Page Pool instance.
|
|
4029
|
+
# @return [Nl::Async::Future<Messages::DoPagePoolGetReply>]
|
|
4030
|
+
# @see Messages::DoPagePoolGetRequest
|
|
4031
|
+
def do_page_pool_get: (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoPagePoolGetReply]
|
|
4032
|
+
|
|
4033
|
+
# Get / dump information about Page Pools.
|
|
4034
|
+
# Only Page Pools associated by the driver with a net_device
|
|
4035
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
4036
|
+
# no longer exists.
|
|
4037
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpPagePoolGetReply]
|
|
4038
|
+
# @param [Hash] args
|
|
4039
|
+
# @option args [Integer] ifindex ifindex of the netdev to which the pool belongs.
|
|
4040
|
+
# May not be reported if the page pool was allocated for a netdev
|
|
4041
|
+
# which got destroyed already (page pools may outlast their netdevs
|
|
4042
|
+
# because they wait for all memory to be returned).
|
|
4043
|
+
# @return [Nl::Async::Stream<Messages::DumpPagePoolGetReply>]
|
|
4044
|
+
# @see Messages::DumpPagePoolGetRequest
|
|
4045
|
+
def dump_page_pool_get: (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpPagePoolGetReply]
|
|
4046
|
+
|
|
4047
|
+
# Get page pool statistics.
|
|
4048
|
+
# @rbs (?info: (AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[Messages::DoPagePoolStatsGetReply]
|
|
4049
|
+
# @param [Hash] args
|
|
4050
|
+
# @option args [AttributeSets::PagePoolInfo, Hash<Symbol, Object>] info Page pool identifying information.
|
|
4051
|
+
# @return [Nl::Async::Future<Messages::DoPagePoolStatsGetReply>]
|
|
4052
|
+
# @see Messages::DoPagePoolStatsGetRequest
|
|
4053
|
+
def do_page_pool_stats_get: (?info: AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped]) -> ::Nl::Async::Future[Messages::DoPagePoolStatsGetReply]
|
|
4054
|
+
|
|
4055
|
+
# Get page pool statistics.
|
|
4056
|
+
# @rbs (?info: (AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Stream[Messages::DumpPagePoolStatsGetReply]
|
|
4057
|
+
# @param [Hash] args
|
|
4058
|
+
# @option args [AttributeSets::PagePoolInfo, Hash<Symbol, Object>] info Page pool identifying information.
|
|
4059
|
+
# @return [Nl::Async::Stream<Messages::DumpPagePoolStatsGetReply>]
|
|
4060
|
+
# @see Messages::DumpPagePoolStatsGetRequest
|
|
4061
|
+
def dump_page_pool_stats_get: (?info: AttributeSets::PagePoolInfo | ::Hash[::Symbol, untyped]) -> ::Nl::Async::Stream[Messages::DumpPagePoolStatsGetReply]
|
|
4062
|
+
|
|
4063
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
4064
|
+
# @rbs (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> ::Nl::Async::Future[Messages::DoQueueGetReply]
|
|
4065
|
+
# @param [Hash] args
|
|
4066
|
+
# @option args [Integer] id Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.
|
|
4067
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
4068
|
+
# @option args [Integer] type Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
4069
|
+
#
|
|
4070
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
4071
|
+
# @return [Nl::Async::Future<Messages::DoQueueGetReply>]
|
|
4072
|
+
# @see Messages::DoQueueGetRequest
|
|
4073
|
+
def do_queue_get: (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> ::Nl::Async::Future[Messages::DoQueueGetReply]
|
|
4074
|
+
|
|
4075
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
4076
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQueueGetReply]
|
|
4077
|
+
# @param [Hash] args
|
|
4078
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
4079
|
+
# @return [Nl::Async::Stream<Messages::DumpQueueGetReply>]
|
|
4080
|
+
# @see Messages::DumpQueueGetRequest
|
|
4081
|
+
def dump_queue_get: (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQueueGetReply]
|
|
4082
|
+
|
|
4083
|
+
# Get information about NAPI instances configured on the system.
|
|
4084
|
+
# @rbs (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoNapiGetReply]
|
|
4085
|
+
# @param [Hash] args
|
|
4086
|
+
# @option args [Integer] id ID of the NAPI instance.
|
|
4087
|
+
# @return [Nl::Async::Future<Messages::DoNapiGetReply>]
|
|
4088
|
+
# @see Messages::DoNapiGetRequest
|
|
4089
|
+
def do_napi_get: (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoNapiGetReply]
|
|
4090
|
+
|
|
4091
|
+
# Get information about NAPI instances configured on the system.
|
|
4092
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpNapiGetReply]
|
|
4093
|
+
# @param [Hash] args
|
|
4094
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which NAPI instance belongs.
|
|
4095
|
+
# @return [Nl::Async::Stream<Messages::DumpNapiGetReply>]
|
|
4096
|
+
# @see Messages::DumpNapiGetRequest
|
|
4097
|
+
def dump_napi_get: (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpNapiGetReply]
|
|
4098
|
+
|
|
4099
|
+
# Get / dump fine grained statistics. Which statistics are reported
|
|
4100
|
+
# depends on the device and the driver, and whether the driver stores
|
|
4101
|
+
# software counters per-queue.
|
|
4102
|
+
# @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQstatsGetReply]
|
|
4103
|
+
# @param [Hash] args
|
|
4104
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which stats belong.
|
|
4105
|
+
# @option args [Integer] scope What object type should be used to iterate over the stats.
|
|
4106
|
+
#
|
|
4107
|
+
#
|
|
4108
|
+
# Known flags are defined in {Flags::QstatsScope}.
|
|
4109
|
+
# @return [Nl::Async::Stream<Messages::DumpQstatsGetReply>]
|
|
4110
|
+
# @see Messages::DumpQstatsGetRequest
|
|
4111
|
+
def dump_qstats_get: (?ifindex: ::Integer, ?scope: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQstatsGetReply]
|
|
4112
|
+
|
|
4113
|
+
# Bind dmabuf to netdev
|
|
4114
|
+
#
|
|
4115
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
4116
|
+
# @rbs (?ifindex: ::Integer, ?queues: ::Array[(AttributeSets::QueueId | ::Hash[::Symbol, untyped])], ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindRxReply]
|
|
4117
|
+
# @param [Hash] args
|
|
4118
|
+
# @option args [Integer] ifindex netdev ifindex to bind the dmabuf to.
|
|
4119
|
+
# @option args [Array<AttributeSets::QueueId, Hash<Symbol, Object>>] queues receive queues to bind the dmabuf to.
|
|
4120
|
+
# @option args [Integer] fd dmabuf file descriptor to bind.
|
|
4121
|
+
# @return [Nl::Async::Future<Messages::DoBindRxReply>]
|
|
4122
|
+
# @see Messages::DoBindRxRequest
|
|
4123
|
+
def do_bind_rx: (?ifindex: ::Integer, ?queues: ::Array[AttributeSets::QueueId | ::Hash[::Symbol, untyped]], ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindRxReply]
|
|
4124
|
+
|
|
4125
|
+
# Set configurable NAPI instance settings.
|
|
4126
|
+
#
|
|
4127
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
4128
|
+
# @rbs (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> ::Nl::Async::Future[void]
|
|
4129
|
+
# @param [Hash] args
|
|
4130
|
+
# @option args [Integer] id ID of the NAPI instance.
|
|
4131
|
+
# @option args [Integer] defer_hard_irqs The number of consecutive empty polls before IRQ deferral ends and hardware IRQs are re-enabled.
|
|
4132
|
+
# @option args [Integer] gro_flush_timeout The timeout, in nanoseconds, of when to trigger the NAPI watchdog timer which schedules NAPI processing. Additionally, a non-zero value will also prevent GRO from flushing recent super-frames at the end of a NAPI cycle. This may add receive latency in exchange for reducing the number of frames processed by the network stack.
|
|
4133
|
+
# @option args [Integer] irq_suspend_timeout The timeout, in nanoseconds, of how long to suspend irq processing, if event polling finds events
|
|
4134
|
+
# @option args [Integer] threaded Whether the NAPI is configured to operate in threaded polling mode. If this is set to enabled then the NAPI context operates in threaded polling mode. If this is set to busy-poll, then the threaded polling mode also busy polls.
|
|
4135
|
+
#
|
|
4136
|
+
# Known enum values are defined in {Enums::NapiThreaded}.
|
|
4137
|
+
# @return [Nl::Async::Future<void>]
|
|
4138
|
+
# @see Messages::DoNapiSetRequest
|
|
4139
|
+
def do_napi_set: (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> ::Nl::Async::Future[void]
|
|
4140
|
+
|
|
4141
|
+
# Bind dmabuf to netdev for TX
|
|
4142
|
+
# @rbs (?ifindex: ::Integer, ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindTxReply]
|
|
4143
|
+
# @param [Hash] args
|
|
4144
|
+
# @option args [Integer] ifindex netdev ifindex to bind the dmabuf to.
|
|
4145
|
+
# @option args [Integer] fd dmabuf file descriptor to bind.
|
|
4146
|
+
# @return [Nl::Async::Future<Messages::DoBindTxReply>]
|
|
4147
|
+
# @see Messages::DoBindTxRequest
|
|
4148
|
+
def do_bind_tx: (?ifindex: ::Integer, ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindTxReply]
|
|
4149
|
+
|
|
4150
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
4151
|
+
# is supported depends on the device and the driver.
|
|
4152
|
+
#
|
|
4153
|
+
#
|
|
4154
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
4155
|
+
# @rbs (?ifindex: ::Integer, ?type: ::Integer, ?lease: (AttributeSets::Lease | ::Hash[::Symbol, untyped])) -> ::Nl::Async::Future[Messages::DoQueueCreateReply]
|
|
4156
|
+
# @param [Hash] args
|
|
4157
|
+
# @option args [Integer] ifindex ifindex of the netdevice to which the queue belongs.
|
|
4158
|
+
# @option args [Integer] type Queue type as rx, tx. Each queue type defines a separate ID space. XDP TX queues allocated in the kernel are not linked to NAPIs and thus not listed. AF_XDP queues will have more information set in the xsk attribute.
|
|
4159
|
+
#
|
|
4160
|
+
# Known enum values are defined in {Enums::QueueType}.
|
|
4161
|
+
# @option args [AttributeSets::Lease, Hash<Symbol, Object>] lease A queue from a virtual device can have a lease which refers to
|
|
4162
|
+
# another queue from a physical device. This is useful for memory
|
|
4163
|
+
# providers and AF_XDP operations which take an ifindex and queue id
|
|
4164
|
+
# to allow applications to bind against virtual devices in containers.
|
|
4165
|
+
# @return [Nl::Async::Future<Messages::DoQueueCreateReply>]
|
|
4166
|
+
# @see Messages::DoQueueCreateRequest
|
|
4167
|
+
def do_queue_create: (?ifindex: ::Integer, ?type: ::Integer, ?lease: AttributeSets::Lease | ::Hash[::Symbol, untyped]) -> ::Nl::Async::Future[Messages::DoQueueCreateReply]
|
|
4168
|
+
end
|
|
4169
|
+
|
|
4170
|
+
# Returns the asynchronous operation facade for this family.
|
|
4171
|
+
# @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
|
|
4172
|
+
# @param [::Integer, nil] stream_capacity
|
|
4173
|
+
# @return [AsyncOperations]
|
|
4174
|
+
def async: (?stream_capacity: ::Integer?) -> AsyncOperations
|
|
4175
|
+
|
|
4176
|
+
# @rbs (*(:mgmt | :page_pool) groups) -> self
|
|
4177
|
+
# @param [Array<:mgmt, :page_pool>] groups
|
|
4178
|
+
# @return [self]
|
|
4179
|
+
def subscribe: (*:mgmt | :page_pool groups) -> self
|
|
4180
|
+
|
|
4181
|
+
# @rbs (*(:mgmt | :page_pool) groups) -> self
|
|
4182
|
+
# @param [Array<:mgmt, :page_pool>] groups
|
|
4183
|
+
# @return [self]
|
|
4184
|
+
def unsubscribe: (*:mgmt | :page_pool groups) -> self
|
|
4185
|
+
end
|
|
4186
|
+
end
|
|
4187
|
+
end
|