nl-linux 0.2.4 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.yardopts +5 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Rakefile +27 -5
  6. data/generated/nl/linux/binder.rb +227 -19
  7. data/generated/nl/linux/conntrack.rb +1325 -365
  8. data/generated/nl/linux/dev_energymodel.rb +357 -66
  9. data/generated/nl/linux/devlink.rb +6310 -1859
  10. data/generated/nl/linux/dpll.rb +2202 -376
  11. data/generated/nl/linux/drm_ras.rb +312 -63
  12. data/generated/nl/linux/ethtool.rb +7555 -2447
  13. data/generated/nl/linux/fou.rb +381 -133
  14. data/generated/nl/linux/handshake.rb +340 -70
  15. data/generated/nl/linux/lockd.rb +132 -27
  16. data/generated/nl/linux/mptcp_pm.rb +773 -161
  17. data/generated/nl/linux/net_shaper.rb +892 -211
  18. data/generated/nl/linux/netdev.rb +2366 -518
  19. data/generated/nl/linux/nfsd.rb +1299 -317
  20. data/generated/nl/linux/nftables.rb +5351 -1533
  21. data/generated/nl/linux/nl80211.rb +4601 -882
  22. data/generated/nl/linux/nlctrl.rb +460 -117
  23. data/generated/nl/linux/ovpn.rb +1360 -262
  24. data/generated/nl/linux/ovs_datapath.rb +312 -98
  25. data/generated/nl/linux/ovs_flow.rb +1866 -358
  26. data/generated/nl/linux/ovs_packet.rb +331 -45
  27. data/generated/nl/linux/ovs_vport.rb +374 -123
  28. data/generated/nl/linux/psp.rb +1093 -201
  29. data/generated/nl/linux/rt_addr.rb +423 -165
  30. data/generated/nl/linux/rt_link.rb +6928 -1336
  31. data/generated/nl/linux/rt_neigh.rb +1063 -297
  32. data/generated/nl/linux/rt_route.rb +1112 -483
  33. data/generated/nl/linux/rt_rule.rb +931 -262
  34. data/generated/nl/linux/sunrpc_cache.rb +407 -82
  35. data/generated/nl/linux/tc.rb +10081 -1763
  36. data/generated/nl/linux/tcp_metrics.rb +388 -109
  37. data/generated/nl/linux/team.rb +350 -84
  38. data/generated/nl/linux/wireguard.rb +525 -96
  39. data/generated/nl/linux.rb +1 -0
  40. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  41. data/lib/nl/linux/version.rb +1 -1
  42. data/sig/generated/nl/linux/binder.rbs +366 -0
  43. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  44. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  45. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  46. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  47. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  48. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  49. data/sig/generated/nl/linux/fou.rbs +702 -0
  50. data/sig/generated/nl/linux/handshake.rbs +622 -0
  51. data/sig/generated/nl/linux/lockd.rbs +234 -0
  52. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  53. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  54. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  55. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  56. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  57. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  58. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  59. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  60. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  61. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  62. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  63. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  64. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  65. data/sig/generated/nl/linux/psp.rbs +1846 -0
  66. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  67. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  68. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  69. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  70. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  71. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  72. data/sig/generated/nl/linux/tc.rbs +19931 -0
  73. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  74. data/sig/generated/nl/linux/team.rbs +733 -0
  75. data/sig/generated/nl/linux/version.rbs +7 -0
  76. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  77. data/sig/generated/nl/linux.rbs +6 -0
  78. data/sig/generated/nl-linux.rbs +2 -0
  79. metadata +51 -10
@@ -0,0 +1,1645 @@
1
+ # Generated from generated/nl/linux/net_shaper.rb with RBS::Inline
2
+
3
+ module Nl
4
+ module Linux
5
+ # Networking HW rate limiting configuration.
6
+ #
7
+ # This API allows configuring HW shapers available on the network
8
+ # devices at different levels (queues, network device) and allows
9
+ # arbitrary manipulation of the scheduling tree of the involved
10
+ # shapers.
11
+ #
12
+ # Each `shaper` is identified within the given device, by a `handle`,
13
+ # comprising both a `scope` and an `id.`
14
+ #
15
+ # Depending on the `scope` value, the shapers are attached to specific
16
+ # HW objects (queues, devices) or, for `node` scope, represent a
17
+ # scheduling group, that can be placed in an arbitrary location of
18
+ # the scheduling tree.
19
+ #
20
+ # Shapers can be created with two different operations: the `set`
21
+ # operation, to create and update a single "attached" shaper, and
22
+ # the `group` operation, to create and update a scheduling
23
+ # group. Only the `group` operation can create `node` scope shapers.
24
+ #
25
+ # Existing shapers can be deleted/reset via the `delete` operation.
26
+ #
27
+ # The user can query the running configuration via the `get` operation.
28
+ #
29
+ # Different devices can provide different feature sets, e.g. with no
30
+ # support for complex scheduling hierarchy, or for some shaping
31
+ # parameters. The user can introspect the HW capabilities via the
32
+ # `cap-get` operation.
33
+ class NetShaper < ::Nl::Genl::Family
34
+ NAME: ::String
35
+
36
+ VERSION: ::Integer
37
+
38
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
39
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
40
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
41
+ # @param [#call] resolver
42
+ # @param [Symbol, nil] executor
43
+ # @param [Integer, nil] notification_capacity
44
+ # @return [NetShaper]
45
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
46
+ # @param [#call] resolver
47
+ # @param [Symbol, nil] executor
48
+ # @param [Integer, nil] notification_capacity
49
+ # @yieldparam [NetShaper] family
50
+ # @return [Object] the result of the block
51
+ def self.open: (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
52
+
53
+ # @private
54
+ MCAST_GROUPS: Hash[::Symbol, ::Nl::McastGroup]
55
+
56
+ module Constants
57
+ MAX_HANDLE_ID: ::Integer
58
+ end
59
+
60
+ module Enums
61
+ # Defines the shaper `id` interpretation.
62
+ module Scope
63
+ # The scope is not specified.
64
+ Unspec: ::Integer
65
+
66
+ # The main shaper for the given network device.
67
+ Netdev: ::Integer
68
+
69
+ # The shaper is attached to the given device queue,
70
+ # the `id` represents the queue number.
71
+ Queue: ::Integer
72
+
73
+ # The shaper allows grouping of queues or other
74
+ # node shapers; can be nested in either `netdev`
75
+ # shapers or other `node` shapers, allowing placement
76
+ # in any location of the scheduling tree, except
77
+ # leaves and root.
78
+ Node: ::Integer
79
+ end
80
+
81
+ # Different metric supported by the shaper.
82
+ module Metric
83
+ # Shaper operates on a bits per second basis.
84
+ Bps: ::Integer
85
+
86
+ # Shaper operates on a packets per second basis.
87
+ Pps: ::Integer
88
+ end
89
+ end
90
+
91
+ module Structs
92
+ end
93
+
94
+ module AttributeSets
95
+ class NetShaper < ::Nl::AttributeSet
96
+ # Abstract class
97
+ class Attribute < ::Nl::AttributeSet::Attribute
98
+ end
99
+
100
+ # Unique identifier for the given shaper inside the owning device.
101
+ class Handle < Attribute
102
+ TYPE: ::Integer
103
+
104
+ NAME: ::Symbol
105
+
106
+ # @private
107
+ ORDER: ::Integer
108
+ end
109
+
110
+ # Metric used by the given shaper for bw-min, bw-max and burst.
111
+ #
112
+ # Known enum values are defined in {Enums::Metric}.
113
+ class Metric < Attribute
114
+ TYPE: ::Integer
115
+
116
+ NAME: ::Symbol
117
+
118
+ # @private
119
+ ORDER: ::Integer
120
+
121
+ # @private
122
+ DATATYPE: untyped
123
+ end
124
+
125
+ # Guaranteed bandwidth for the given shaper.
126
+ class BwMin < Attribute
127
+ TYPE: ::Integer
128
+
129
+ NAME: ::Symbol
130
+
131
+ # @private
132
+ ORDER: ::Integer
133
+
134
+ # @private
135
+ DATATYPE: untyped
136
+ end
137
+
138
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
139
+ class BwMax < Attribute
140
+ TYPE: ::Integer
141
+
142
+ NAME: ::Symbol
143
+
144
+ # @private
145
+ ORDER: ::Integer
146
+
147
+ # @private
148
+ DATATYPE: untyped
149
+ end
150
+
151
+ # Maximum burst-size for shaping. Should not be interpreted
152
+ # as a quantum.
153
+ class Burst < Attribute
154
+ TYPE: ::Integer
155
+
156
+ NAME: ::Symbol
157
+
158
+ # @private
159
+ ORDER: ::Integer
160
+
161
+ # @private
162
+ DATATYPE: untyped
163
+ end
164
+
165
+ # Scheduling priority for the given shaper. The priority
166
+ # scheduling is applied to sibling shapers.
167
+ class Priority < Attribute
168
+ TYPE: ::Integer
169
+
170
+ NAME: ::Symbol
171
+
172
+ # @private
173
+ ORDER: ::Integer
174
+
175
+ # @private
176
+ DATATYPE: untyped
177
+ end
178
+
179
+ # Relative weight for round robin scheduling of the
180
+ # given shaper.
181
+ # The scheduling is applied to all sibling shapers
182
+ # with the same priority.
183
+ class Weight < Attribute
184
+ TYPE: ::Integer
185
+
186
+ NAME: ::Symbol
187
+
188
+ # @private
189
+ ORDER: ::Integer
190
+
191
+ # @private
192
+ DATATYPE: untyped
193
+ end
194
+
195
+ # Interface index owning the specified shaper.
196
+ class Ifindex < Attribute
197
+ TYPE: ::Integer
198
+
199
+ NAME: ::Symbol
200
+
201
+ # @private
202
+ ORDER: ::Integer
203
+
204
+ # @private
205
+ DATATYPE: untyped
206
+ end
207
+
208
+ # Identifier for the parent of the affected shaper.
209
+ # Only needed for `group` operation.
210
+ class Parent < Attribute
211
+ TYPE: ::Integer
212
+
213
+ NAME: ::Symbol
214
+
215
+ # @private
216
+ ORDER: ::Integer
217
+ end
218
+
219
+ # Describes a set of leaves shapers for a `group` operation.
220
+ class Leaves < Attribute
221
+ TYPE: ::Integer
222
+
223
+ NAME: ::Symbol
224
+
225
+ # @private
226
+ MULTI: bool
227
+
228
+ # @private
229
+ ORDER: ::Integer
230
+ end
231
+
232
+ # @private
233
+ BY_NAME: Hash[::Symbol, Attribute]
234
+
235
+ # @private
236
+ BY_TYPE: Hash[::Integer, Attribute]
237
+
238
+ # Unique identifier for the given shaper inside the owning device.
239
+ # @rbs return: AttributeSets::Handle
240
+ # @return [AttributeSets::Handle]
241
+ # @see Handle
242
+ def handle: () -> AttributeSets::Handle
243
+
244
+ # Metric used by the given shaper for bw-min, bw-max and burst.
245
+ #
246
+ # Known enum values are defined in {Enums::Metric}.
247
+ # @rbs return: ::Integer
248
+ # @return [Integer]
249
+ # @see Metric
250
+ def metric: () -> ::Integer
251
+
252
+ # Guaranteed bandwidth for the given shaper.
253
+ # @rbs return: ::Integer
254
+ # @return [Integer]
255
+ # @see BwMin
256
+ def bw_min: () -> ::Integer
257
+
258
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
259
+ # @rbs return: ::Integer
260
+ # @return [Integer]
261
+ # @see BwMax
262
+ def bw_max: () -> ::Integer
263
+
264
+ # Maximum burst-size for shaping. Should not be interpreted
265
+ # as a quantum.
266
+ # @rbs return: ::Integer
267
+ # @return [Integer]
268
+ # @see Burst
269
+ def burst: () -> ::Integer
270
+
271
+ # Scheduling priority for the given shaper. The priority
272
+ # scheduling is applied to sibling shapers.
273
+ # @rbs return: ::Integer
274
+ # @return [Integer]
275
+ # @see Priority
276
+ def priority: () -> ::Integer
277
+
278
+ # Relative weight for round robin scheduling of the
279
+ # given shaper.
280
+ # The scheduling is applied to all sibling shapers
281
+ # with the same priority.
282
+ # @rbs return: ::Integer
283
+ # @return [Integer]
284
+ # @see Weight
285
+ def weight: () -> ::Integer
286
+
287
+ # Interface index owning the specified shaper.
288
+ # @rbs return: ::Integer
289
+ # @return [Integer]
290
+ # @see Ifindex
291
+ def ifindex: () -> ::Integer
292
+
293
+ # Identifier for the parent of the affected shaper.
294
+ # Only needed for `group` operation.
295
+ # @rbs return: AttributeSets::Handle
296
+ # @return [AttributeSets::Handle]
297
+ # @see Parent
298
+ def parent: () -> AttributeSets::Handle
299
+
300
+ # Describes a set of leaves shapers for a `group` operation.
301
+ # @rbs return: ::Array[AttributeSets::LeafInfo]
302
+ # @return [Array<AttributeSets::LeafInfo>]
303
+ # @see Leaves
304
+ def leaves: () -> ::Array[AttributeSets::LeafInfo]
305
+
306
+ # Looks up Attribute class by name.
307
+ # @rbs name: Symbol
308
+ # @rbs return: Attribute
309
+ # @param [Symbol] name
310
+ # @return [Attribute]
311
+ def self.by_name: (Symbol name) -> Attribute
312
+
313
+ # Looks up Attribute class by type value.
314
+ # @rbs type: Integer
315
+ # @rbs return: Attribute
316
+ # @param [Integer] type
317
+ # @return [Attribute]
318
+ def self.by_type: (Integer type) -> Attribute
319
+ end
320
+
321
+ class Handle < ::Nl::AttributeSet
322
+ # Abstract class
323
+ class Attribute < ::Nl::AttributeSet::Attribute
324
+ end
325
+
326
+ # Defines the shaper `id` interpretation.
327
+ #
328
+ # Known enum values are defined in {Enums::Scope}.
329
+ class Scope < Attribute
330
+ TYPE: ::Integer
331
+
332
+ NAME: ::Symbol
333
+
334
+ # @private
335
+ ORDER: ::Integer
336
+
337
+ # @private
338
+ DATATYPE: untyped
339
+ end
340
+
341
+ # Numeric identifier of a shaper. The id semantic depends on
342
+ # the scope. For `queue` scope it's the queue id and for `node`
343
+ # scope it's the node identifier.
344
+ class Id < Attribute
345
+ TYPE: ::Integer
346
+
347
+ NAME: ::Symbol
348
+
349
+ # @private
350
+ ORDER: ::Integer
351
+
352
+ # @private
353
+ DATATYPE: untyped
354
+ end
355
+
356
+ # @private
357
+ BY_NAME: Hash[::Symbol, Attribute]
358
+
359
+ # @private
360
+ BY_TYPE: Hash[::Integer, Attribute]
361
+
362
+ # Defines the shaper `id` interpretation.
363
+ #
364
+ # Known enum values are defined in {Enums::Scope}.
365
+ # @rbs return: ::Integer
366
+ # @return [Integer]
367
+ # @see Scope
368
+ def scope: () -> ::Integer
369
+
370
+ # Numeric identifier of a shaper. The id semantic depends on
371
+ # the scope. For `queue` scope it's the queue id and for `node`
372
+ # scope it's the node identifier.
373
+ # @rbs return: ::Integer
374
+ # @return [Integer]
375
+ # @see Id
376
+ def id: () -> ::Integer
377
+
378
+ # Looks up Attribute class by name.
379
+ # @rbs name: Symbol
380
+ # @rbs return: Attribute
381
+ # @param [Symbol] name
382
+ # @return [Attribute]
383
+ def self.by_name: (Symbol name) -> Attribute
384
+
385
+ # Looks up Attribute class by type value.
386
+ # @rbs type: Integer
387
+ # @rbs return: Attribute
388
+ # @param [Integer] type
389
+ # @return [Attribute]
390
+ def self.by_type: (Integer type) -> Attribute
391
+ end
392
+
393
+ class LeafInfo < ::Nl::AttributeSet
394
+ # Abstract class
395
+ class Attribute < ::Nl::AttributeSet::Attribute
396
+ end
397
+
398
+ # Unique identifier for the given shaper inside the owning device.
399
+ class Handle < Attribute
400
+ TYPE: ::Integer
401
+
402
+ NAME: ::Symbol
403
+
404
+ # @private
405
+ ORDER: ::Integer
406
+ end
407
+
408
+ # Scheduling priority for the given shaper. The priority
409
+ # scheduling is applied to sibling shapers.
410
+ class Priority < Attribute
411
+ TYPE: ::Integer
412
+
413
+ NAME: ::Symbol
414
+
415
+ # @private
416
+ ORDER: ::Integer
417
+
418
+ # @private
419
+ DATATYPE: untyped
420
+ end
421
+
422
+ # Relative weight for round robin scheduling of the
423
+ # given shaper.
424
+ # The scheduling is applied to all sibling shapers
425
+ # with the same priority.
426
+ class Weight < Attribute
427
+ TYPE: ::Integer
428
+
429
+ NAME: ::Symbol
430
+
431
+ # @private
432
+ ORDER: ::Integer
433
+
434
+ # @private
435
+ DATATYPE: untyped
436
+ end
437
+
438
+ # @private
439
+ BY_NAME: Hash[::Symbol, Attribute]
440
+
441
+ # @private
442
+ BY_TYPE: Hash[::Integer, Attribute]
443
+
444
+ # Unique identifier for the given shaper inside the owning device.
445
+ # @rbs return: AttributeSets::Handle
446
+ # @return [AttributeSets::Handle]
447
+ # @see Handle
448
+ def handle: () -> AttributeSets::Handle
449
+
450
+ # Scheduling priority for the given shaper. The priority
451
+ # scheduling is applied to sibling shapers.
452
+ # @rbs return: ::Integer
453
+ # @return [Integer]
454
+ # @see Priority
455
+ def priority: () -> ::Integer
456
+
457
+ # Relative weight for round robin scheduling of the
458
+ # given shaper.
459
+ # The scheduling is applied to all sibling shapers
460
+ # with the same priority.
461
+ # @rbs return: ::Integer
462
+ # @return [Integer]
463
+ # @see Weight
464
+ def weight: () -> ::Integer
465
+
466
+ # Looks up Attribute class by name.
467
+ # @rbs name: Symbol
468
+ # @rbs return: Attribute
469
+ # @param [Symbol] name
470
+ # @return [Attribute]
471
+ def self.by_name: (Symbol name) -> Attribute
472
+
473
+ # Looks up Attribute class by type value.
474
+ # @rbs type: Integer
475
+ # @rbs return: Attribute
476
+ # @param [Integer] type
477
+ # @return [Attribute]
478
+ def self.by_type: (Integer type) -> Attribute
479
+ end
480
+
481
+ class Caps < ::Nl::AttributeSet
482
+ # Abstract class
483
+ class Attribute < ::Nl::AttributeSet::Attribute
484
+ end
485
+
486
+ # Interface index queried for shapers capabilities.
487
+ class Ifindex < Attribute
488
+ TYPE: ::Integer
489
+
490
+ NAME: ::Symbol
491
+
492
+ # @private
493
+ ORDER: ::Integer
494
+
495
+ # @private
496
+ DATATYPE: untyped
497
+ end
498
+
499
+ # The scope to which the queried capabilities apply.
500
+ #
501
+ # Known enum values are defined in {Enums::Scope}.
502
+ class Scope < Attribute
503
+ TYPE: ::Integer
504
+
505
+ NAME: ::Symbol
506
+
507
+ # @private
508
+ ORDER: ::Integer
509
+
510
+ # @private
511
+ DATATYPE: untyped
512
+ end
513
+
514
+ # The device accepts 'bps' metric for bw-min, bw-max and burst.
515
+ class SupportMetricBps < Attribute
516
+ TYPE: ::Integer
517
+
518
+ NAME: ::Symbol
519
+
520
+ # @private
521
+ ORDER: ::Integer
522
+
523
+ # @private
524
+ DATATYPE: untyped
525
+ end
526
+
527
+ # The device accepts 'pps' metric for bw-min, bw-max and burst.
528
+ class SupportMetricPps < Attribute
529
+ TYPE: ::Integer
530
+
531
+ NAME: ::Symbol
532
+
533
+ # @private
534
+ ORDER: ::Integer
535
+
536
+ # @private
537
+ DATATYPE: untyped
538
+ end
539
+
540
+ # The device supports nesting shaper belonging to this scope
541
+ # below 'node' scoped shapers. Only 'queue' and 'node'
542
+ # scope can have flag 'support-nesting'.
543
+ class SupportNesting < Attribute
544
+ TYPE: ::Integer
545
+
546
+ NAME: ::Symbol
547
+
548
+ # @private
549
+ ORDER: ::Integer
550
+
551
+ # @private
552
+ DATATYPE: untyped
553
+ end
554
+
555
+ # The device supports a minimum guaranteed B/W.
556
+ class SupportBwMin < Attribute
557
+ TYPE: ::Integer
558
+
559
+ NAME: ::Symbol
560
+
561
+ # @private
562
+ ORDER: ::Integer
563
+
564
+ # @private
565
+ DATATYPE: untyped
566
+ end
567
+
568
+ # The device supports maximum B/W shaping.
569
+ class SupportBwMax < Attribute
570
+ TYPE: ::Integer
571
+
572
+ NAME: ::Symbol
573
+
574
+ # @private
575
+ ORDER: ::Integer
576
+
577
+ # @private
578
+ DATATYPE: untyped
579
+ end
580
+
581
+ # The device supports a maximum burst size.
582
+ class SupportBurst < Attribute
583
+ TYPE: ::Integer
584
+
585
+ NAME: ::Symbol
586
+
587
+ # @private
588
+ ORDER: ::Integer
589
+
590
+ # @private
591
+ DATATYPE: untyped
592
+ end
593
+
594
+ # The device supports priority scheduling.
595
+ class SupportPriority < Attribute
596
+ TYPE: ::Integer
597
+
598
+ NAME: ::Symbol
599
+
600
+ # @private
601
+ ORDER: ::Integer
602
+
603
+ # @private
604
+ DATATYPE: untyped
605
+ end
606
+
607
+ # The device supports weighted round robin scheduling.
608
+ class SupportWeight < Attribute
609
+ TYPE: ::Integer
610
+
611
+ NAME: ::Symbol
612
+
613
+ # @private
614
+ ORDER: ::Integer
615
+
616
+ # @private
617
+ DATATYPE: untyped
618
+ end
619
+
620
+ # @private
621
+ BY_NAME: Hash[::Symbol, Attribute]
622
+
623
+ # @private
624
+ BY_TYPE: Hash[::Integer, Attribute]
625
+
626
+ # Interface index queried for shapers capabilities.
627
+ # @rbs return: ::Integer
628
+ # @return [Integer]
629
+ # @see Ifindex
630
+ def ifindex: () -> ::Integer
631
+
632
+ # The scope to which the queried capabilities apply.
633
+ #
634
+ # Known enum values are defined in {Enums::Scope}.
635
+ # @rbs return: ::Integer
636
+ # @return [Integer]
637
+ # @see Scope
638
+ def scope: () -> ::Integer
639
+
640
+ # The device accepts 'bps' metric for bw-min, bw-max and burst.
641
+ # @rbs return: ::Integer
642
+ # @return [Integer]
643
+ # @see SupportMetricBps
644
+ def support_metric_bps: () -> ::Integer
645
+
646
+ # The device accepts 'pps' metric for bw-min, bw-max and burst.
647
+ # @rbs return: ::Integer
648
+ # @return [Integer]
649
+ # @see SupportMetricPps
650
+ def support_metric_pps: () -> ::Integer
651
+
652
+ # The device supports nesting shaper belonging to this scope
653
+ # below 'node' scoped shapers. Only 'queue' and 'node'
654
+ # scope can have flag 'support-nesting'.
655
+ # @rbs return: ::Integer
656
+ # @return [Integer]
657
+ # @see SupportNesting
658
+ def support_nesting: () -> ::Integer
659
+
660
+ # The device supports a minimum guaranteed B/W.
661
+ # @rbs return: ::Integer
662
+ # @return [Integer]
663
+ # @see SupportBwMin
664
+ def support_bw_min: () -> ::Integer
665
+
666
+ # The device supports maximum B/W shaping.
667
+ # @rbs return: ::Integer
668
+ # @return [Integer]
669
+ # @see SupportBwMax
670
+ def support_bw_max: () -> ::Integer
671
+
672
+ # The device supports a maximum burst size.
673
+ # @rbs return: ::Integer
674
+ # @return [Integer]
675
+ # @see SupportBurst
676
+ def support_burst: () -> ::Integer
677
+
678
+ # The device supports priority scheduling.
679
+ # @rbs return: ::Integer
680
+ # @return [Integer]
681
+ # @see SupportPriority
682
+ def support_priority: () -> ::Integer
683
+
684
+ # The device supports weighted round robin scheduling.
685
+ # @rbs return: ::Integer
686
+ # @return [Integer]
687
+ # @see SupportWeight
688
+ def support_weight: () -> ::Integer
689
+
690
+ # Looks up Attribute class by name.
691
+ # @rbs name: Symbol
692
+ # @rbs return: Attribute
693
+ # @param [Symbol] name
694
+ # @return [Attribute]
695
+ def self.by_name: (Symbol name) -> Attribute
696
+
697
+ # Looks up Attribute class by type value.
698
+ # @rbs type: Integer
699
+ # @rbs return: Attribute
700
+ # @param [Integer] type
701
+ # @return [Attribute]
702
+ def self.by_type: (Integer type) -> Attribute
703
+ end
704
+ end
705
+
706
+ module Messages
707
+ # Get information about a shaper for a given device.
708
+ class DoGetRequest < ::Nl::Genl::Message
709
+ TYPE: ::Integer
710
+
711
+ FIXED_HEADER: untyped
712
+
713
+ ATTRIBUTE_SET: untyped
714
+
715
+ ATTRIBUTES: untyped
716
+
717
+ # Unique identifier for the given shaper inside the owning device.
718
+ # @rbs return: AttributeSets::Handle
719
+ # @return [AttributeSets::Handle]
720
+ # @see AttributeSets::NetShaper::Handle
721
+ def handle: () -> AttributeSets::Handle
722
+
723
+ # Interface index owning the specified shaper.
724
+ # @rbs return: ::Integer
725
+ # @return [Integer]
726
+ # @see AttributeSets::NetShaper::Ifindex
727
+ def ifindex: () -> ::Integer
728
+ end
729
+
730
+ # Get information about a shaper for a given device.
731
+ class DoGetReply < ::Nl::Genl::Message
732
+ TYPE: ::Integer
733
+
734
+ FIXED_HEADER: untyped
735
+
736
+ ATTRIBUTE_SET: untyped
737
+
738
+ ATTRIBUTES: untyped
739
+
740
+ # Unique identifier for the given shaper inside the owning device.
741
+ # @rbs return: AttributeSets::Handle
742
+ # @return [AttributeSets::Handle]
743
+ # @see AttributeSets::NetShaper::Handle
744
+ def handle: () -> AttributeSets::Handle
745
+
746
+ # Metric used by the given shaper for bw-min, bw-max and burst.
747
+ #
748
+ # Known enum values are defined in {Enums::Metric}.
749
+ # @rbs return: ::Integer
750
+ # @return [Integer]
751
+ # @see AttributeSets::NetShaper::Metric
752
+ def metric: () -> ::Integer
753
+
754
+ # Guaranteed bandwidth for the given shaper.
755
+ # @rbs return: ::Integer
756
+ # @return [Integer]
757
+ # @see AttributeSets::NetShaper::BwMin
758
+ def bw_min: () -> ::Integer
759
+
760
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
761
+ # @rbs return: ::Integer
762
+ # @return [Integer]
763
+ # @see AttributeSets::NetShaper::BwMax
764
+ def bw_max: () -> ::Integer
765
+
766
+ # Maximum burst-size for shaping. Should not be interpreted
767
+ # as a quantum.
768
+ # @rbs return: ::Integer
769
+ # @return [Integer]
770
+ # @see AttributeSets::NetShaper::Burst
771
+ def burst: () -> ::Integer
772
+
773
+ # Scheduling priority for the given shaper. The priority
774
+ # scheduling is applied to sibling shapers.
775
+ # @rbs return: ::Integer
776
+ # @return [Integer]
777
+ # @see AttributeSets::NetShaper::Priority
778
+ def priority: () -> ::Integer
779
+
780
+ # Relative weight for round robin scheduling of the
781
+ # given shaper.
782
+ # The scheduling is applied to all sibling shapers
783
+ # with the same priority.
784
+ # @rbs return: ::Integer
785
+ # @return [Integer]
786
+ # @see AttributeSets::NetShaper::Weight
787
+ def weight: () -> ::Integer
788
+
789
+ # Interface index owning the specified shaper.
790
+ # @rbs return: ::Integer
791
+ # @return [Integer]
792
+ # @see AttributeSets::NetShaper::Ifindex
793
+ def ifindex: () -> ::Integer
794
+
795
+ # Identifier for the parent of the affected shaper.
796
+ # Only needed for `group` operation.
797
+ # @rbs return: AttributeSets::Handle
798
+ # @return [AttributeSets::Handle]
799
+ # @see AttributeSets::NetShaper::Parent
800
+ def parent: () -> AttributeSets::Handle
801
+ end
802
+
803
+ # Get information about a shaper for a given device.
804
+ class DumpGetRequest < ::Nl::Genl::Message
805
+ TYPE: ::Integer
806
+
807
+ FIXED_HEADER: untyped
808
+
809
+ ATTRIBUTE_SET: untyped
810
+
811
+ ATTRIBUTES: untyped
812
+
813
+ # Interface index owning the specified shaper.
814
+ # @rbs return: ::Integer
815
+ # @return [Integer]
816
+ # @see AttributeSets::NetShaper::Ifindex
817
+ def ifindex: () -> ::Integer
818
+ end
819
+
820
+ # Get information about a shaper for a given device.
821
+ class DumpGetReply < ::Nl::Genl::Message
822
+ TYPE: ::Integer
823
+
824
+ FIXED_HEADER: untyped
825
+
826
+ ATTRIBUTE_SET: untyped
827
+
828
+ ATTRIBUTES: untyped
829
+
830
+ # Unique identifier for the given shaper inside the owning device.
831
+ # @rbs return: AttributeSets::Handle
832
+ # @return [AttributeSets::Handle]
833
+ # @see AttributeSets::NetShaper::Handle
834
+ def handle: () -> AttributeSets::Handle
835
+
836
+ # Metric used by the given shaper for bw-min, bw-max and burst.
837
+ #
838
+ # Known enum values are defined in {Enums::Metric}.
839
+ # @rbs return: ::Integer
840
+ # @return [Integer]
841
+ # @see AttributeSets::NetShaper::Metric
842
+ def metric: () -> ::Integer
843
+
844
+ # Guaranteed bandwidth for the given shaper.
845
+ # @rbs return: ::Integer
846
+ # @return [Integer]
847
+ # @see AttributeSets::NetShaper::BwMin
848
+ def bw_min: () -> ::Integer
849
+
850
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
851
+ # @rbs return: ::Integer
852
+ # @return [Integer]
853
+ # @see AttributeSets::NetShaper::BwMax
854
+ def bw_max: () -> ::Integer
855
+
856
+ # Maximum burst-size for shaping. Should not be interpreted
857
+ # as a quantum.
858
+ # @rbs return: ::Integer
859
+ # @return [Integer]
860
+ # @see AttributeSets::NetShaper::Burst
861
+ def burst: () -> ::Integer
862
+
863
+ # Scheduling priority for the given shaper. The priority
864
+ # scheduling is applied to sibling shapers.
865
+ # @rbs return: ::Integer
866
+ # @return [Integer]
867
+ # @see AttributeSets::NetShaper::Priority
868
+ def priority: () -> ::Integer
869
+
870
+ # Relative weight for round robin scheduling of the
871
+ # given shaper.
872
+ # The scheduling is applied to all sibling shapers
873
+ # with the same priority.
874
+ # @rbs return: ::Integer
875
+ # @return [Integer]
876
+ # @see AttributeSets::NetShaper::Weight
877
+ def weight: () -> ::Integer
878
+
879
+ # Interface index owning the specified shaper.
880
+ # @rbs return: ::Integer
881
+ # @return [Integer]
882
+ # @see AttributeSets::NetShaper::Ifindex
883
+ def ifindex: () -> ::Integer
884
+
885
+ # Identifier for the parent of the affected shaper.
886
+ # Only needed for `group` operation.
887
+ # @rbs return: AttributeSets::Handle
888
+ # @return [AttributeSets::Handle]
889
+ # @see AttributeSets::NetShaper::Parent
890
+ def parent: () -> AttributeSets::Handle
891
+ end
892
+
893
+ # Create or update the specified shaper.
894
+ # The set operation can't be used to create a `node` scope shaper,
895
+ # use the `group` operation instead.
896
+ #
897
+ #
898
+ # Requires CAP_NET_ADMIN in the initial user namespace.
899
+ class DoSetRequest < ::Nl::Genl::Message
900
+ TYPE: ::Integer
901
+
902
+ FIXED_HEADER: untyped
903
+
904
+ ATTRIBUTE_SET: untyped
905
+
906
+ ATTRIBUTES: untyped
907
+
908
+ # Unique identifier for the given shaper inside the owning device.
909
+ # @rbs return: AttributeSets::Handle
910
+ # @return [AttributeSets::Handle]
911
+ # @see AttributeSets::NetShaper::Handle
912
+ def handle: () -> AttributeSets::Handle
913
+
914
+ # Metric used by the given shaper for bw-min, bw-max and burst.
915
+ #
916
+ # Known enum values are defined in {Enums::Metric}.
917
+ # @rbs return: ::Integer
918
+ # @return [Integer]
919
+ # @see AttributeSets::NetShaper::Metric
920
+ def metric: () -> ::Integer
921
+
922
+ # Guaranteed bandwidth for the given shaper.
923
+ # @rbs return: ::Integer
924
+ # @return [Integer]
925
+ # @see AttributeSets::NetShaper::BwMin
926
+ def bw_min: () -> ::Integer
927
+
928
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
929
+ # @rbs return: ::Integer
930
+ # @return [Integer]
931
+ # @see AttributeSets::NetShaper::BwMax
932
+ def bw_max: () -> ::Integer
933
+
934
+ # Maximum burst-size for shaping. Should not be interpreted
935
+ # as a quantum.
936
+ # @rbs return: ::Integer
937
+ # @return [Integer]
938
+ # @see AttributeSets::NetShaper::Burst
939
+ def burst: () -> ::Integer
940
+
941
+ # Scheduling priority for the given shaper. The priority
942
+ # scheduling is applied to sibling shapers.
943
+ # @rbs return: ::Integer
944
+ # @return [Integer]
945
+ # @see AttributeSets::NetShaper::Priority
946
+ def priority: () -> ::Integer
947
+
948
+ # Relative weight for round robin scheduling of the
949
+ # given shaper.
950
+ # The scheduling is applied to all sibling shapers
951
+ # with the same priority.
952
+ # @rbs return: ::Integer
953
+ # @return [Integer]
954
+ # @see AttributeSets::NetShaper::Weight
955
+ def weight: () -> ::Integer
956
+
957
+ # Interface index owning the specified shaper.
958
+ # @rbs return: ::Integer
959
+ # @return [Integer]
960
+ # @see AttributeSets::NetShaper::Ifindex
961
+ def ifindex: () -> ::Integer
962
+ end
963
+
964
+ # Clear (remove) the specified shaper. When deleting
965
+ # a `node` shaper, reattach all the node's leaves to the
966
+ # deleted node's parent.
967
+ # If, after the removal, the parent shaper has no more
968
+ # leaves and the parent shaper scope is `node`, the parent
969
+ # node is deleted, recursively.
970
+ # When deleting a `queue` shaper or a `netdev` shaper,
971
+ # the shaper disappears from the hierarchy, but the
972
+ # queue/device can still send traffic: it has an implicit
973
+ # node with infinite bandwidth. The queue's implicit node
974
+ # feeds an implicit RR node at the root of the hierarchy.
975
+ #
976
+ #
977
+ # Requires CAP_NET_ADMIN in the initial user namespace.
978
+ class DoDeleteRequest < ::Nl::Genl::Message
979
+ TYPE: ::Integer
980
+
981
+ FIXED_HEADER: untyped
982
+
983
+ ATTRIBUTE_SET: untyped
984
+
985
+ ATTRIBUTES: untyped
986
+
987
+ # Unique identifier for the given shaper inside the owning device.
988
+ # @rbs return: AttributeSets::Handle
989
+ # @return [AttributeSets::Handle]
990
+ # @see AttributeSets::NetShaper::Handle
991
+ def handle: () -> AttributeSets::Handle
992
+
993
+ # Interface index owning the specified shaper.
994
+ # @rbs return: ::Integer
995
+ # @return [Integer]
996
+ # @see AttributeSets::NetShaper::Ifindex
997
+ def ifindex: () -> ::Integer
998
+ end
999
+
1000
+ # Create or update a scheduling group, attaching the specified
1001
+ # `leaves` shapers under the specified node identified by `handle.`
1002
+ # The `leaves` shapers scope must be `queue` and the node shaper
1003
+ # scope must be either `node` or `netdev.`
1004
+ # When the node shaper has `node` scope, if the `handle` `id` is not
1005
+ # specified, a new shaper of such scope is created, otherwise the
1006
+ # specified node must already exist.
1007
+ # When updating an existing node shaper, the specified `leaves` are
1008
+ # added to the existing node; such node will also retain any preexisting
1009
+ # leave.
1010
+ # The `parent` handle for a new node shaper defaults to the parent
1011
+ # of all the leaves, provided all the leaves share the same parent.
1012
+ # Otherwise `parent` handle must be specified.
1013
+ # The user can optionally provide shaping attributes for the node
1014
+ # shaper.
1015
+ # The operation is atomic, on failure no change is applied to
1016
+ # the device shaping configuration, otherwise the `node` shaper
1017
+ # full identifier, comprising `binding` and `handle`, is provided
1018
+ # as the reply.
1019
+ #
1020
+ #
1021
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1022
+ class DoGroupRequest < ::Nl::Genl::Message
1023
+ TYPE: ::Integer
1024
+
1025
+ FIXED_HEADER: untyped
1026
+
1027
+ ATTRIBUTE_SET: untyped
1028
+
1029
+ ATTRIBUTES: untyped
1030
+
1031
+ # Unique identifier for the given shaper inside the owning device.
1032
+ # @rbs return: AttributeSets::Handle
1033
+ # @return [AttributeSets::Handle]
1034
+ # @see AttributeSets::NetShaper::Handle
1035
+ def handle: () -> AttributeSets::Handle
1036
+
1037
+ # Metric used by the given shaper for bw-min, bw-max and burst.
1038
+ #
1039
+ # Known enum values are defined in {Enums::Metric}.
1040
+ # @rbs return: ::Integer
1041
+ # @return [Integer]
1042
+ # @see AttributeSets::NetShaper::Metric
1043
+ def metric: () -> ::Integer
1044
+
1045
+ # Guaranteed bandwidth for the given shaper.
1046
+ # @rbs return: ::Integer
1047
+ # @return [Integer]
1048
+ # @see AttributeSets::NetShaper::BwMin
1049
+ def bw_min: () -> ::Integer
1050
+
1051
+ # Maximum bandwidth for the given shaper or 0 when unlimited.
1052
+ # @rbs return: ::Integer
1053
+ # @return [Integer]
1054
+ # @see AttributeSets::NetShaper::BwMax
1055
+ def bw_max: () -> ::Integer
1056
+
1057
+ # Maximum burst-size for shaping. Should not be interpreted
1058
+ # as a quantum.
1059
+ # @rbs return: ::Integer
1060
+ # @return [Integer]
1061
+ # @see AttributeSets::NetShaper::Burst
1062
+ def burst: () -> ::Integer
1063
+
1064
+ # Scheduling priority for the given shaper. The priority
1065
+ # scheduling is applied to sibling shapers.
1066
+ # @rbs return: ::Integer
1067
+ # @return [Integer]
1068
+ # @see AttributeSets::NetShaper::Priority
1069
+ def priority: () -> ::Integer
1070
+
1071
+ # Relative weight for round robin scheduling of the
1072
+ # given shaper.
1073
+ # The scheduling is applied to all sibling shapers
1074
+ # with the same priority.
1075
+ # @rbs return: ::Integer
1076
+ # @return [Integer]
1077
+ # @see AttributeSets::NetShaper::Weight
1078
+ def weight: () -> ::Integer
1079
+
1080
+ # Interface index owning the specified shaper.
1081
+ # @rbs return: ::Integer
1082
+ # @return [Integer]
1083
+ # @see AttributeSets::NetShaper::Ifindex
1084
+ def ifindex: () -> ::Integer
1085
+
1086
+ # Identifier for the parent of the affected shaper.
1087
+ # Only needed for `group` operation.
1088
+ # @rbs return: AttributeSets::Handle
1089
+ # @return [AttributeSets::Handle]
1090
+ # @see AttributeSets::NetShaper::Parent
1091
+ def parent: () -> AttributeSets::Handle
1092
+
1093
+ # Describes a set of leaves shapers for a `group` operation.
1094
+ # @rbs return: ::Array[AttributeSets::LeafInfo]
1095
+ # @return [Array<AttributeSets::LeafInfo>]
1096
+ # @see AttributeSets::NetShaper::Leaves
1097
+ def leaves: () -> ::Array[AttributeSets::LeafInfo]
1098
+ end
1099
+
1100
+ # Create or update a scheduling group, attaching the specified
1101
+ # `leaves` shapers under the specified node identified by `handle.`
1102
+ # The `leaves` shapers scope must be `queue` and the node shaper
1103
+ # scope must be either `node` or `netdev.`
1104
+ # When the node shaper has `node` scope, if the `handle` `id` is not
1105
+ # specified, a new shaper of such scope is created, otherwise the
1106
+ # specified node must already exist.
1107
+ # When updating an existing node shaper, the specified `leaves` are
1108
+ # added to the existing node; such node will also retain any preexisting
1109
+ # leave.
1110
+ # The `parent` handle for a new node shaper defaults to the parent
1111
+ # of all the leaves, provided all the leaves share the same parent.
1112
+ # Otherwise `parent` handle must be specified.
1113
+ # The user can optionally provide shaping attributes for the node
1114
+ # shaper.
1115
+ # The operation is atomic, on failure no change is applied to
1116
+ # the device shaping configuration, otherwise the `node` shaper
1117
+ # full identifier, comprising `binding` and `handle`, is provided
1118
+ # as the reply.
1119
+ #
1120
+ #
1121
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1122
+ class DoGroupReply < ::Nl::Genl::Message
1123
+ TYPE: ::Integer
1124
+
1125
+ FIXED_HEADER: untyped
1126
+
1127
+ ATTRIBUTE_SET: untyped
1128
+
1129
+ ATTRIBUTES: untyped
1130
+
1131
+ # Unique identifier for the given shaper inside the owning device.
1132
+ # @rbs return: AttributeSets::Handle
1133
+ # @return [AttributeSets::Handle]
1134
+ # @see AttributeSets::NetShaper::Handle
1135
+ def handle: () -> AttributeSets::Handle
1136
+
1137
+ # Interface index owning the specified shaper.
1138
+ # @rbs return: ::Integer
1139
+ # @return [Integer]
1140
+ # @see AttributeSets::NetShaper::Ifindex
1141
+ def ifindex: () -> ::Integer
1142
+ end
1143
+
1144
+ # Get the shaper capabilities supported by the given device
1145
+ # for the specified scope.
1146
+ class DoCapGetRequest < ::Nl::Genl::Message
1147
+ TYPE: ::Integer
1148
+
1149
+ FIXED_HEADER: untyped
1150
+
1151
+ ATTRIBUTE_SET: untyped
1152
+
1153
+ ATTRIBUTES: untyped
1154
+
1155
+ # Interface index queried for shapers capabilities.
1156
+ # @rbs return: ::Integer
1157
+ # @return [Integer]
1158
+ # @see AttributeSets::Caps::Ifindex
1159
+ def ifindex: () -> ::Integer
1160
+
1161
+ # The scope to which the queried capabilities apply.
1162
+ #
1163
+ # Known enum values are defined in {Enums::Scope}.
1164
+ # @rbs return: ::Integer
1165
+ # @return [Integer]
1166
+ # @see AttributeSets::Caps::Scope
1167
+ def scope: () -> ::Integer
1168
+ end
1169
+
1170
+ # Get the shaper capabilities supported by the given device
1171
+ # for the specified scope.
1172
+ class DoCapGetReply < ::Nl::Genl::Message
1173
+ TYPE: ::Integer
1174
+
1175
+ FIXED_HEADER: untyped
1176
+
1177
+ ATTRIBUTE_SET: untyped
1178
+
1179
+ ATTRIBUTES: untyped
1180
+
1181
+ # Interface index queried for shapers capabilities.
1182
+ # @rbs return: ::Integer
1183
+ # @return [Integer]
1184
+ # @see AttributeSets::Caps::Ifindex
1185
+ def ifindex: () -> ::Integer
1186
+
1187
+ # The scope to which the queried capabilities apply.
1188
+ #
1189
+ # Known enum values are defined in {Enums::Scope}.
1190
+ # @rbs return: ::Integer
1191
+ # @return [Integer]
1192
+ # @see AttributeSets::Caps::Scope
1193
+ def scope: () -> ::Integer
1194
+
1195
+ # The device accepts 'bps' metric for bw-min, bw-max and burst.
1196
+ # @rbs return: ::Integer
1197
+ # @return [Integer]
1198
+ # @see AttributeSets::Caps::SupportMetricBps
1199
+ def support_metric_bps: () -> ::Integer
1200
+
1201
+ # The device accepts 'pps' metric for bw-min, bw-max and burst.
1202
+ # @rbs return: ::Integer
1203
+ # @return [Integer]
1204
+ # @see AttributeSets::Caps::SupportMetricPps
1205
+ def support_metric_pps: () -> ::Integer
1206
+
1207
+ # The device supports nesting shaper belonging to this scope
1208
+ # below 'node' scoped shapers. Only 'queue' and 'node'
1209
+ # scope can have flag 'support-nesting'.
1210
+ # @rbs return: ::Integer
1211
+ # @return [Integer]
1212
+ # @see AttributeSets::Caps::SupportNesting
1213
+ def support_nesting: () -> ::Integer
1214
+
1215
+ # The device supports a minimum guaranteed B/W.
1216
+ # @rbs return: ::Integer
1217
+ # @return [Integer]
1218
+ # @see AttributeSets::Caps::SupportBwMin
1219
+ def support_bw_min: () -> ::Integer
1220
+
1221
+ # The device supports maximum B/W shaping.
1222
+ # @rbs return: ::Integer
1223
+ # @return [Integer]
1224
+ # @see AttributeSets::Caps::SupportBwMax
1225
+ def support_bw_max: () -> ::Integer
1226
+
1227
+ # The device supports a maximum burst size.
1228
+ # @rbs return: ::Integer
1229
+ # @return [Integer]
1230
+ # @see AttributeSets::Caps::SupportBurst
1231
+ def support_burst: () -> ::Integer
1232
+
1233
+ # The device supports priority scheduling.
1234
+ # @rbs return: ::Integer
1235
+ # @return [Integer]
1236
+ # @see AttributeSets::Caps::SupportPriority
1237
+ def support_priority: () -> ::Integer
1238
+
1239
+ # The device supports weighted round robin scheduling.
1240
+ # @rbs return: ::Integer
1241
+ # @return [Integer]
1242
+ # @see AttributeSets::Caps::SupportWeight
1243
+ def support_weight: () -> ::Integer
1244
+ end
1245
+
1246
+ # Get the shaper capabilities supported by the given device
1247
+ # for the specified scope.
1248
+ class DumpCapGetRequest < ::Nl::Genl::Message
1249
+ TYPE: ::Integer
1250
+
1251
+ FIXED_HEADER: untyped
1252
+
1253
+ ATTRIBUTE_SET: untyped
1254
+
1255
+ ATTRIBUTES: untyped
1256
+
1257
+ # Interface index queried for shapers capabilities.
1258
+ # @rbs return: ::Integer
1259
+ # @return [Integer]
1260
+ # @see AttributeSets::Caps::Ifindex
1261
+ def ifindex: () -> ::Integer
1262
+ end
1263
+
1264
+ # Get the shaper capabilities supported by the given device
1265
+ # for the specified scope.
1266
+ class DumpCapGetReply < ::Nl::Genl::Message
1267
+ TYPE: ::Integer
1268
+
1269
+ FIXED_HEADER: untyped
1270
+
1271
+ ATTRIBUTE_SET: untyped
1272
+
1273
+ ATTRIBUTES: untyped
1274
+
1275
+ # Interface index queried for shapers capabilities.
1276
+ # @rbs return: ::Integer
1277
+ # @return [Integer]
1278
+ # @see AttributeSets::Caps::Ifindex
1279
+ def ifindex: () -> ::Integer
1280
+
1281
+ # The scope to which the queried capabilities apply.
1282
+ #
1283
+ # Known enum values are defined in {Enums::Scope}.
1284
+ # @rbs return: ::Integer
1285
+ # @return [Integer]
1286
+ # @see AttributeSets::Caps::Scope
1287
+ def scope: () -> ::Integer
1288
+
1289
+ # The device accepts 'bps' metric for bw-min, bw-max and burst.
1290
+ # @rbs return: ::Integer
1291
+ # @return [Integer]
1292
+ # @see AttributeSets::Caps::SupportMetricBps
1293
+ def support_metric_bps: () -> ::Integer
1294
+
1295
+ # The device accepts 'pps' metric for bw-min, bw-max and burst.
1296
+ # @rbs return: ::Integer
1297
+ # @return [Integer]
1298
+ # @see AttributeSets::Caps::SupportMetricPps
1299
+ def support_metric_pps: () -> ::Integer
1300
+
1301
+ # The device supports nesting shaper belonging to this scope
1302
+ # below 'node' scoped shapers. Only 'queue' and 'node'
1303
+ # scope can have flag 'support-nesting'.
1304
+ # @rbs return: ::Integer
1305
+ # @return [Integer]
1306
+ # @see AttributeSets::Caps::SupportNesting
1307
+ def support_nesting: () -> ::Integer
1308
+
1309
+ # The device supports a minimum guaranteed B/W.
1310
+ # @rbs return: ::Integer
1311
+ # @return [Integer]
1312
+ # @see AttributeSets::Caps::SupportBwMin
1313
+ def support_bw_min: () -> ::Integer
1314
+
1315
+ # The device supports maximum B/W shaping.
1316
+ # @rbs return: ::Integer
1317
+ # @return [Integer]
1318
+ # @see AttributeSets::Caps::SupportBwMax
1319
+ def support_bw_max: () -> ::Integer
1320
+
1321
+ # The device supports a maximum burst size.
1322
+ # @rbs return: ::Integer
1323
+ # @return [Integer]
1324
+ # @see AttributeSets::Caps::SupportBurst
1325
+ def support_burst: () -> ::Integer
1326
+
1327
+ # The device supports priority scheduling.
1328
+ # @rbs return: ::Integer
1329
+ # @return [Integer]
1330
+ # @see AttributeSets::Caps::SupportPriority
1331
+ def support_priority: () -> ::Integer
1332
+
1333
+ # The device supports weighted round robin scheduling.
1334
+ # @rbs return: ::Integer
1335
+ # @return [Integer]
1336
+ # @see AttributeSets::Caps::SupportWeight
1337
+ def support_weight: () -> ::Integer
1338
+ end
1339
+ end
1340
+
1341
+ module Notifications
1342
+ end
1343
+
1344
+ # @private
1345
+ NOTIFICATIONS: Hash[::Integer, ::Class]
1346
+
1347
+ # Get information about a shaper for a given device.
1348
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?ifindex: ::Integer) -> Messages::DoGetReply
1349
+ # @param [Hash] args
1350
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1351
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1352
+ # @return [Messages::DoGetReply]
1353
+ # @see Messages::DoGetRequest
1354
+ def do_get: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?ifindex: ::Integer) -> Messages::DoGetReply
1355
+
1356
+ # Get information about a shaper for a given device.
1357
+ # @rbs (?ifindex: ::Integer) -> Array[Messages::DumpGetReply]
1358
+ # | (?ifindex: ::Integer) { (Messages::DumpGetReply) -> void } -> void
1359
+ # @overload dump_get(**args)
1360
+ # Returns an array when no block is given.
1361
+ # @param [Hash] args
1362
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1363
+ # @return [Array<Messages::DumpGetReply>]
1364
+ # @overload dump_get(**args, &block)
1365
+ # Yields each reply when a block is given.
1366
+ # @param [Hash] args
1367
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1368
+ # @yieldparam [Messages::DumpGetReply] reply
1369
+ # @return [void]
1370
+ # @see Messages::DumpGetRequest
1371
+ def dump_get: (?ifindex: ::Integer) -> Array[Messages::DumpGetReply]
1372
+ | (?ifindex: ::Integer) { (Messages::DumpGetReply) -> void } -> void
1373
+
1374
+ # Create or update the specified shaper.
1375
+ # The set operation can't be used to create a `node` scope shaper,
1376
+ # use the `group` operation instead.
1377
+ #
1378
+ #
1379
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1380
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer) -> void
1381
+ # @param [Hash] args
1382
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1383
+ # @option args [Integer] metric Metric used by the given shaper for bw-min, bw-max and burst.
1384
+ #
1385
+ # Known enum values are defined in {Enums::Metric}.
1386
+ # @option args [Integer] bw_min Guaranteed bandwidth for the given shaper.
1387
+ # @option args [Integer] bw_max Maximum bandwidth for the given shaper or 0 when unlimited.
1388
+ # @option args [Integer] burst Maximum burst-size for shaping. Should not be interpreted
1389
+ # as a quantum.
1390
+ # @option args [Integer] priority Scheduling priority for the given shaper. The priority
1391
+ # scheduling is applied to sibling shapers.
1392
+ # @option args [Integer] weight Relative weight for round robin scheduling of the
1393
+ # given shaper.
1394
+ # The scheduling is applied to all sibling shapers
1395
+ # with the same priority.
1396
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1397
+ # @return [void]
1398
+ # @see Messages::DoSetRequest
1399
+ def do_set: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer) -> void
1400
+
1401
+ # Clear (remove) the specified shaper. When deleting
1402
+ # a `node` shaper, reattach all the node's leaves to the
1403
+ # deleted node's parent.
1404
+ # If, after the removal, the parent shaper has no more
1405
+ # leaves and the parent shaper scope is `node`, the parent
1406
+ # node is deleted, recursively.
1407
+ # When deleting a `queue` shaper or a `netdev` shaper,
1408
+ # the shaper disappears from the hierarchy, but the
1409
+ # queue/device can still send traffic: it has an implicit
1410
+ # node with infinite bandwidth. The queue's implicit node
1411
+ # feeds an implicit RR node at the root of the hierarchy.
1412
+ #
1413
+ #
1414
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1415
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?ifindex: ::Integer) -> void
1416
+ # @param [Hash] args
1417
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1418
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1419
+ # @return [void]
1420
+ # @see Messages::DoDeleteRequest
1421
+ def do_delete: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?ifindex: ::Integer) -> void
1422
+
1423
+ # Create or update a scheduling group, attaching the specified
1424
+ # `leaves` shapers under the specified node identified by `handle.`
1425
+ # The `leaves` shapers scope must be `queue` and the node shaper
1426
+ # scope must be either `node` or `netdev.`
1427
+ # When the node shaper has `node` scope, if the `handle` `id` is not
1428
+ # specified, a new shaper of such scope is created, otherwise the
1429
+ # specified node must already exist.
1430
+ # When updating an existing node shaper, the specified `leaves` are
1431
+ # added to the existing node; such node will also retain any preexisting
1432
+ # leave.
1433
+ # The `parent` handle for a new node shaper defaults to the parent
1434
+ # of all the leaves, provided all the leaves share the same parent.
1435
+ # Otherwise `parent` handle must be specified.
1436
+ # The user can optionally provide shaping attributes for the node
1437
+ # shaper.
1438
+ # The operation is atomic, on failure no change is applied to
1439
+ # the device shaping configuration, otherwise the `node` shaper
1440
+ # full identifier, comprising `binding` and `handle`, is provided
1441
+ # as the reply.
1442
+ #
1443
+ #
1444
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1445
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer, ?parent: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?leaves: ::Array[(AttributeSets::LeafInfo | ::Hash[::Symbol, untyped])]) -> Messages::DoGroupReply
1446
+ # @param [Hash] args
1447
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1448
+ # @option args [Integer] metric Metric used by the given shaper for bw-min, bw-max and burst.
1449
+ #
1450
+ # Known enum values are defined in {Enums::Metric}.
1451
+ # @option args [Integer] bw_min Guaranteed bandwidth for the given shaper.
1452
+ # @option args [Integer] bw_max Maximum bandwidth for the given shaper or 0 when unlimited.
1453
+ # @option args [Integer] burst Maximum burst-size for shaping. Should not be interpreted
1454
+ # as a quantum.
1455
+ # @option args [Integer] priority Scheduling priority for the given shaper. The priority
1456
+ # scheduling is applied to sibling shapers.
1457
+ # @option args [Integer] weight Relative weight for round robin scheduling of the
1458
+ # given shaper.
1459
+ # The scheduling is applied to all sibling shapers
1460
+ # with the same priority.
1461
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1462
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] parent Identifier for the parent of the affected shaper.
1463
+ # Only needed for `group` operation.
1464
+ # @option args [Array<AttributeSets::LeafInfo, Hash<Symbol, Object>>] leaves Describes a set of leaves shapers for a `group` operation.
1465
+ # @return [Messages::DoGroupReply]
1466
+ # @see Messages::DoGroupRequest
1467
+ def do_group: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer, ?parent: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?leaves: ::Array[AttributeSets::LeafInfo | ::Hash[::Symbol, untyped]]) -> Messages::DoGroupReply
1468
+
1469
+ # Get the shaper capabilities supported by the given device
1470
+ # for the specified scope.
1471
+ # @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> Messages::DoCapGetReply
1472
+ # @param [Hash] args
1473
+ # @option args [Integer] ifindex Interface index queried for shapers capabilities.
1474
+ # @option args [Integer] scope The scope to which the queried capabilities apply.
1475
+ #
1476
+ # Known enum values are defined in {Enums::Scope}.
1477
+ # @return [Messages::DoCapGetReply]
1478
+ # @see Messages::DoCapGetRequest
1479
+ def do_cap_get: (?ifindex: ::Integer, ?scope: ::Integer) -> Messages::DoCapGetReply
1480
+
1481
+ # Get the shaper capabilities supported by the given device
1482
+ # for the specified scope.
1483
+ # @rbs (?ifindex: ::Integer) -> Array[Messages::DumpCapGetReply]
1484
+ # | (?ifindex: ::Integer) { (Messages::DumpCapGetReply) -> void } -> void
1485
+ # @overload dump_cap_get(**args)
1486
+ # Returns an array when no block is given.
1487
+ # @param [Hash] args
1488
+ # @option args [Integer] ifindex Interface index queried for shapers capabilities.
1489
+ # @return [Array<Messages::DumpCapGetReply>]
1490
+ # @overload dump_cap_get(**args, &block)
1491
+ # Yields each reply when a block is given.
1492
+ # @param [Hash] args
1493
+ # @option args [Integer] ifindex Interface index queried for shapers capabilities.
1494
+ # @yieldparam [Messages::DumpCapGetReply] reply
1495
+ # @return [void]
1496
+ # @see Messages::DumpCapGetRequest
1497
+ def dump_cap_get: (?ifindex: ::Integer) -> Array[Messages::DumpCapGetReply]
1498
+ | (?ifindex: ::Integer) { (Messages::DumpCapGetReply) -> void } -> void
1499
+
1500
+ class AsyncOperations
1501
+ # @private
1502
+ def initialize: () ?{ (?) -> untyped } -> untyped
1503
+
1504
+ # Get information about a shaper for a given device.
1505
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?ifindex: ::Integer) -> ::Nl::Async::Future[Messages::DoGetReply]
1506
+ # @param [Hash] args
1507
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1508
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1509
+ # @return [Nl::Async::Future<Messages::DoGetReply>]
1510
+ # @see Messages::DoGetRequest
1511
+ def do_get: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?ifindex: ::Integer) -> ::Nl::Async::Future[Messages::DoGetReply]
1512
+
1513
+ # Get information about a shaper for a given device.
1514
+ # @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetReply]
1515
+ # @param [Hash] args
1516
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1517
+ # @return [Nl::Async::Stream<Messages::DumpGetReply>]
1518
+ # @see Messages::DumpGetRequest
1519
+ def dump_get: (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetReply]
1520
+
1521
+ # Create or update the specified shaper.
1522
+ # The set operation can't be used to create a `node` scope shaper,
1523
+ # use the `group` operation instead.
1524
+ #
1525
+ #
1526
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1527
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
1528
+ # @param [Hash] args
1529
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1530
+ # @option args [Integer] metric Metric used by the given shaper for bw-min, bw-max and burst.
1531
+ #
1532
+ # Known enum values are defined in {Enums::Metric}.
1533
+ # @option args [Integer] bw_min Guaranteed bandwidth for the given shaper.
1534
+ # @option args [Integer] bw_max Maximum bandwidth for the given shaper or 0 when unlimited.
1535
+ # @option args [Integer] burst Maximum burst-size for shaping. Should not be interpreted
1536
+ # as a quantum.
1537
+ # @option args [Integer] priority Scheduling priority for the given shaper. The priority
1538
+ # scheduling is applied to sibling shapers.
1539
+ # @option args [Integer] weight Relative weight for round robin scheduling of the
1540
+ # given shaper.
1541
+ # The scheduling is applied to all sibling shapers
1542
+ # with the same priority.
1543
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1544
+ # @return [Nl::Async::Future<void>]
1545
+ # @see Messages::DoSetRequest
1546
+ def do_set: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
1547
+
1548
+ # Clear (remove) the specified shaper. When deleting
1549
+ # a `node` shaper, reattach all the node's leaves to the
1550
+ # deleted node's parent.
1551
+ # If, after the removal, the parent shaper has no more
1552
+ # leaves and the parent shaper scope is `node`, the parent
1553
+ # node is deleted, recursively.
1554
+ # When deleting a `queue` shaper or a `netdev` shaper,
1555
+ # the shaper disappears from the hierarchy, but the
1556
+ # queue/device can still send traffic: it has an implicit
1557
+ # node with infinite bandwidth. The queue's implicit node
1558
+ # feeds an implicit RR node at the root of the hierarchy.
1559
+ #
1560
+ #
1561
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1562
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
1563
+ # @param [Hash] args
1564
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1565
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1566
+ # @return [Nl::Async::Future<void>]
1567
+ # @see Messages::DoDeleteRequest
1568
+ def do_delete: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?ifindex: ::Integer) -> ::Nl::Async::Future[void]
1569
+
1570
+ # Create or update a scheduling group, attaching the specified
1571
+ # `leaves` shapers under the specified node identified by `handle.`
1572
+ # The `leaves` shapers scope must be `queue` and the node shaper
1573
+ # scope must be either `node` or `netdev.`
1574
+ # When the node shaper has `node` scope, if the `handle` `id` is not
1575
+ # specified, a new shaper of such scope is created, otherwise the
1576
+ # specified node must already exist.
1577
+ # When updating an existing node shaper, the specified `leaves` are
1578
+ # added to the existing node; such node will also retain any preexisting
1579
+ # leave.
1580
+ # The `parent` handle for a new node shaper defaults to the parent
1581
+ # of all the leaves, provided all the leaves share the same parent.
1582
+ # Otherwise `parent` handle must be specified.
1583
+ # The user can optionally provide shaping attributes for the node
1584
+ # shaper.
1585
+ # The operation is atomic, on failure no change is applied to
1586
+ # the device shaping configuration, otherwise the `node` shaper
1587
+ # full identifier, comprising `binding` and `handle`, is provided
1588
+ # as the reply.
1589
+ #
1590
+ #
1591
+ # Requires CAP_NET_ADMIN in the initial user namespace.
1592
+ # @rbs (?handle: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer, ?parent: (AttributeSets::Handle | ::Hash[::Symbol, untyped]), ?leaves: ::Array[(AttributeSets::LeafInfo | ::Hash[::Symbol, untyped])]) -> ::Nl::Async::Future[Messages::DoGroupReply]
1593
+ # @param [Hash] args
1594
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] handle Unique identifier for the given shaper inside the owning device.
1595
+ # @option args [Integer] metric Metric used by the given shaper for bw-min, bw-max and burst.
1596
+ #
1597
+ # Known enum values are defined in {Enums::Metric}.
1598
+ # @option args [Integer] bw_min Guaranteed bandwidth for the given shaper.
1599
+ # @option args [Integer] bw_max Maximum bandwidth for the given shaper or 0 when unlimited.
1600
+ # @option args [Integer] burst Maximum burst-size for shaping. Should not be interpreted
1601
+ # as a quantum.
1602
+ # @option args [Integer] priority Scheduling priority for the given shaper. The priority
1603
+ # scheduling is applied to sibling shapers.
1604
+ # @option args [Integer] weight Relative weight for round robin scheduling of the
1605
+ # given shaper.
1606
+ # The scheduling is applied to all sibling shapers
1607
+ # with the same priority.
1608
+ # @option args [Integer] ifindex Interface index owning the specified shaper.
1609
+ # @option args [AttributeSets::Handle, Hash<Symbol, Object>] parent Identifier for the parent of the affected shaper.
1610
+ # Only needed for `group` operation.
1611
+ # @option args [Array<AttributeSets::LeafInfo, Hash<Symbol, Object>>] leaves Describes a set of leaves shapers for a `group` operation.
1612
+ # @return [Nl::Async::Future<Messages::DoGroupReply>]
1613
+ # @see Messages::DoGroupRequest
1614
+ def do_group: (?handle: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?metric: ::Integer, ?bw_min: ::Integer, ?bw_max: ::Integer, ?burst: ::Integer, ?priority: ::Integer, ?weight: ::Integer, ?ifindex: ::Integer, ?parent: AttributeSets::Handle | ::Hash[::Symbol, untyped], ?leaves: ::Array[AttributeSets::LeafInfo | ::Hash[::Symbol, untyped]]) -> ::Nl::Async::Future[Messages::DoGroupReply]
1615
+
1616
+ # Get the shaper capabilities supported by the given device
1617
+ # for the specified scope.
1618
+ # @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> ::Nl::Async::Future[Messages::DoCapGetReply]
1619
+ # @param [Hash] args
1620
+ # @option args [Integer] ifindex Interface index queried for shapers capabilities.
1621
+ # @option args [Integer] scope The scope to which the queried capabilities apply.
1622
+ #
1623
+ # Known enum values are defined in {Enums::Scope}.
1624
+ # @return [Nl::Async::Future<Messages::DoCapGetReply>]
1625
+ # @see Messages::DoCapGetRequest
1626
+ def do_cap_get: (?ifindex: ::Integer, ?scope: ::Integer) -> ::Nl::Async::Future[Messages::DoCapGetReply]
1627
+
1628
+ # Get the shaper capabilities supported by the given device
1629
+ # for the specified scope.
1630
+ # @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpCapGetReply]
1631
+ # @param [Hash] args
1632
+ # @option args [Integer] ifindex Interface index queried for shapers capabilities.
1633
+ # @return [Nl::Async::Stream<Messages::DumpCapGetReply>]
1634
+ # @see Messages::DumpCapGetRequest
1635
+ def dump_cap_get: (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpCapGetReply]
1636
+ end
1637
+
1638
+ # Returns the asynchronous operation facade for this family.
1639
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
1640
+ # @param [::Integer, nil] stream_capacity
1641
+ # @return [AsyncOperations]
1642
+ def async: (?stream_capacity: ::Integer?) -> AsyncOperations
1643
+ end
1644
+ end
1645
+ end