nl-linux 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +5 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Rakefile +14 -2
  5. data/generated/nl/linux/binder.rb +172 -44
  6. data/generated/nl/linux/conntrack.rb +1293 -370
  7. data/generated/nl/linux/dev_energymodel.rb +278 -93
  8. data/generated/nl/linux/devlink.rb +5654 -1954
  9. data/generated/nl/linux/dpll.rb +1838 -669
  10. data/generated/nl/linux/drm_ras.rb +234 -72
  11. data/generated/nl/linux/ethtool.rb +6683 -2885
  12. data/generated/nl/linux/fou.rb +308 -129
  13. data/generated/nl/linux/handshake.rb +277 -99
  14. data/generated/nl/linux/lockd.rb +88 -33
  15. data/generated/nl/linux/mptcp_pm.rb +639 -186
  16. data/generated/nl/linux/net_shaper.rb +782 -224
  17. data/generated/nl/linux/netdev.rb +2105 -631
  18. data/generated/nl/linux/nfsd.rb +1030 -358
  19. data/generated/nl/linux/nftables.rb +5041 -1612
  20. data/generated/nl/linux/nl80211.rb +4531 -871
  21. data/generated/nl/linux/nlctrl.rb +411 -119
  22. data/generated/nl/linux/ovpn.rb +1211 -293
  23. data/generated/nl/linux/ovs_datapath.rb +271 -106
  24. data/generated/nl/linux/ovs_flow.rb +1819 -354
  25. data/generated/nl/linux/ovs_packet.rb +257 -82
  26. data/generated/nl/linux/ovs_vport.rb +334 -132
  27. data/generated/nl/linux/psp.rb +916 -281
  28. data/generated/nl/linux/rt_addr.rb +369 -166
  29. data/generated/nl/linux/rt_link.rb +6708 -1450
  30. data/generated/nl/linux/rt_neigh.rb +919 -364
  31. data/generated/nl/linux/rt_route.rb +1034 -448
  32. data/generated/nl/linux/rt_rule.rb +775 -395
  33. data/generated/nl/linux/sunrpc_cache.rb +297 -102
  34. data/generated/nl/linux/tc.rb +9989 -1780
  35. data/generated/nl/linux/tcp_metrics.rb +327 -105
  36. data/generated/nl/linux/team.rb +279 -93
  37. data/generated/nl/linux/wireguard.rb +432 -95
  38. data/generated/nl/linux.rb +1 -0
  39. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  40. data/lib/nl/linux/version.rb +1 -1
  41. data/sig/generated/nl/linux/binder.rbs +366 -0
  42. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  43. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  44. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  45. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  46. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  47. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  48. data/sig/generated/nl/linux/fou.rbs +702 -0
  49. data/sig/generated/nl/linux/handshake.rbs +622 -0
  50. data/sig/generated/nl/linux/lockd.rbs +234 -0
  51. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  52. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  53. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  54. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  55. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  56. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  57. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  58. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  59. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  60. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  61. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  62. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  63. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  64. data/sig/generated/nl/linux/psp.rbs +1846 -0
  65. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  66. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  67. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  68. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  69. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  70. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  71. data/sig/generated/nl/linux/tc.rbs +19931 -0
  72. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  73. data/sig/generated/nl/linux/team.rbs +733 -0
  74. data/sig/generated/nl/linux/version.rbs +7 -0
  75. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  76. data/sig/generated/nl/linux.rbs +6 -0
  77. data/sig/generated/nl-linux.rbs +2 -0
  78. metadata +46 -7
@@ -3,100 +3,211 @@
3
3
  # This file is based on Documentation/netlink/specs/tcp_metrics.yaml from Linux v7.2.
4
4
  #--
5
5
  # frozen_string_literal: true
6
- # rbs_inline: enabled
7
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
8
7
  require 'nl'
9
8
  module Nl; module Linux
10
9
  # Management interface for TCP metrics.
11
- class TcpMetrics < ::Nl::Family
10
+ class TcpMetrics < ::Nl::Genl::Family
12
11
  NAME = "tcp_metrics"
13
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("tcp_metrics"))
12
+ VERSION = 1
13
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
14
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
15
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
16
+ # @param [#call] resolver
17
+ # @param [Symbol, nil] executor
18
+ # @param [Integer, nil] notification_capacity
19
+ # @return [TcpMetrics]
20
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
21
+ # @param [#call] resolver
22
+ # @param [Symbol, nil] executor
23
+ # @param [Integer, nil] notification_capacity
24
+ # @yieldparam [TcpMetrics] family
25
+ # @return [Object] the result of the block
26
+ def self.open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
27
+ super
28
+ end
29
+ # @private
14
30
  MCAST_GROUPS = Ractor.make_shareable({}) #: Hash[::Symbol, ::Nl::McastGroup]
31
+ module Constants
32
+ TCP_FASTOPEN_COOKIE_MAX = 16
33
+ end
15
34
  module Structs
16
35
  end
17
36
  module AttributeSets
18
- class TcpMetrics < ::Nl::Protocols::Genl::AttributeSet
37
+ class TcpMetrics < ::Nl::AttributeSet
19
38
  # Abstract class
20
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
39
+ class Attribute < ::Nl::AttributeSet::Attribute
21
40
  end
22
41
  class AddrIpv4 < Attribute
23
42
  TYPE = 1
24
43
  NAME = :"addr_ipv4"
25
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
44
+ # @private
45
+ ORDER = 0
46
+ # @private
47
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
26
48
  end
27
49
  class AddrIpv6 < Attribute
28
50
  TYPE = 2
29
51
  NAME = :"addr_ipv6"
30
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
52
+ # @private
53
+ ORDER = 1
54
+ # @private
55
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
31
56
  end
32
57
  class Age < Attribute
33
58
  TYPE = 3
34
59
  NAME = :"age"
35
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
60
+ # @private
61
+ ORDER = 2
62
+ # @private
63
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
36
64
  end
65
+ # unused
37
66
  class TwTsval < Attribute
38
67
  TYPE = 4
39
68
  NAME = :"tw_tsval"
40
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
69
+ # @private
70
+ ORDER = 3
71
+ # @private
72
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
41
73
  end
74
+ # unused
42
75
  class TwTsStamp < Attribute
43
76
  TYPE = 5
44
77
  NAME = :"tw_ts_stamp"
45
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
78
+ # @private
79
+ ORDER = 4
80
+ # @private
81
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: nil)
46
82
  end
47
83
  class Vals < Attribute
48
84
  TYPE = 6
49
85
  NAME = :"vals"
86
+ # @private
87
+ ORDER = 5
50
88
  end
51
89
  class FopenMss < Attribute
52
90
  TYPE = 7
53
91
  NAME = :"fopen_mss"
54
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
92
+ # @private
93
+ ORDER = 6
94
+ # @private
95
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
55
96
  end
56
97
  class FopenSynDrops < Attribute
57
98
  TYPE = 8
58
99
  NAME = :"fopen_syn_drops"
59
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
100
+ # @private
101
+ ORDER = 7
102
+ # @private
103
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
60
104
  end
61
105
  class FopenSynDropTs < Attribute
62
106
  TYPE = 9
63
107
  NAME = :"fopen_syn_drop_ts"
64
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
108
+ # @private
109
+ ORDER = 8
110
+ # @private
111
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
65
112
  end
66
113
  class FopenCookie < Attribute
67
114
  TYPE = 10
68
115
  NAME = :"fopen_cookie"
69
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
116
+ # @private
117
+ ORDER = 9
118
+ # @private
119
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length #{Constants::TCP_FASTOPEN_COOKIE_MAX}" unless it.bytesize >= Constants::TCP_FASTOPEN_COOKIE_MAX })
70
120
  end
71
121
  class SaddrIpv4 < Attribute
72
122
  TYPE = 11
73
123
  NAME = :"saddr_ipv4"
74
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
124
+ # @private
125
+ ORDER = 10
126
+ # @private
127
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
75
128
  end
76
129
  class SaddrIpv6 < Attribute
77
130
  TYPE = 12
78
131
  NAME = :"saddr_ipv6"
79
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
132
+ # @private
133
+ ORDER = 11
134
+ # @private
135
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: -> { raise ArgumentError, "Value #{it.inspect} is shorter than minimum length 16" unless it.bytesize >= 16 })
80
136
  end
81
137
  class Pad < Attribute
82
138
  TYPE = 13
83
139
  NAME = :"pad"
84
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Pad.new()
140
+ # @private
141
+ ORDER = 12
142
+ # @private
143
+ DATATYPE = ::Nl::DataTypes::Pad.new()
85
144
  end
86
- # :nodoc:
145
+ # @private
87
146
  BY_NAME = Ractor.make_shareable({:"addr_ipv4" => AddrIpv4, :"addr_ipv6" => AddrIpv6, :"age" => Age, :"tw_tsval" => TwTsval, :"tw_ts_stamp" => TwTsStamp, :"vals" => Vals, :"fopen_mss" => FopenMss, :"fopen_syn_drops" => FopenSynDrops, :"fopen_syn_drop_ts" => FopenSynDropTs, :"fopen_cookie" => FopenCookie, :"saddr_ipv4" => SaddrIpv4, :"saddr_ipv6" => SaddrIpv6, :"pad" => Pad}) #: Hash[::Symbol, Attribute]
88
- # :nodoc:
147
+ # @private
89
148
  BY_TYPE = Ractor.make_shareable({1 => AddrIpv4, 2 => AddrIpv6, 3 => Age, 4 => TwTsval, 5 => TwTsStamp, 6 => Vals, 7 => FopenMss, 8 => FopenSynDrops, 9 => FopenSynDropTs, 10 => FopenCookie, 11 => SaddrIpv4, 12 => SaddrIpv6, 13 => Pad}) #: Hash[::Integer, Attribute]
149
+ # @rbs return: ::Integer
150
+ # @return [Integer]
151
+ # @see AddrIpv4
152
+ def addr_ipv4; self[:"addr_ipv4"]&.value; end
153
+ # @rbs return: ::String
154
+ # @return [String]
155
+ # @see AddrIpv6
156
+ def addr_ipv6; self[:"addr_ipv6"]&.value; end
157
+ # @rbs return: ::Integer
158
+ # @return [Integer]
159
+ # @see Age
160
+ def age; self[:"age"]&.value; end
161
+ # unused
162
+ # @rbs return: ::Integer
163
+ # @return [Integer]
164
+ # @see TwTsval
165
+ def tw_tsval; self[:"tw_tsval"]&.value; end
166
+ # unused
167
+ # @rbs return: ::Integer
168
+ # @return [Integer]
169
+ # @see TwTsStamp
170
+ def tw_ts_stamp; self[:"tw_ts_stamp"]&.value; end
171
+ # @rbs return: AttributeSets::Metrics
172
+ # @return [AttributeSets::Metrics]
173
+ # @see Vals
174
+ def vals; self[:"vals"]&.value; end
175
+ # @rbs return: ::Integer
176
+ # @return [Integer]
177
+ # @see FopenMss
178
+ def fopen_mss; self[:"fopen_mss"]&.value; end
179
+ # @rbs return: ::Integer
180
+ # @return [Integer]
181
+ # @see FopenSynDrops
182
+ def fopen_syn_drops; self[:"fopen_syn_drops"]&.value; end
183
+ # @rbs return: ::Integer
184
+ # @return [Integer]
185
+ # @see FopenSynDropTs
186
+ def fopen_syn_drop_ts; self[:"fopen_syn_drop_ts"]&.value; end
187
+ # @rbs return: ::String
188
+ # @return [String]
189
+ # @see FopenCookie
190
+ def fopen_cookie; self[:"fopen_cookie"]&.value; end
191
+ # @rbs return: ::Integer
192
+ # @return [Integer]
193
+ # @see SaddrIpv4
194
+ def saddr_ipv4; self[:"saddr_ipv4"]&.value; end
195
+ # @rbs return: ::String
196
+ # @return [String]
197
+ # @see SaddrIpv6
198
+ def saddr_ipv6; self[:"saddr_ipv6"]&.value; end
90
199
  class << self
91
200
  # Looks up Attribute class by name.
92
- #--
93
201
  # @rbs name: Symbol
94
202
  # @rbs return: Attribute
203
+ # @param [Symbol] name
204
+ # @return [Attribute]
95
205
  def by_name(name); BY_NAME.fetch(name); end
96
206
  # Looks up Attribute class by type value.
97
- #--
98
207
  # @rbs type: Integer
99
208
  # @rbs return: Attribute
209
+ # @param [Integer] type
210
+ # @return [Attribute]
100
211
  def by_type(type); BY_TYPE.fetch(type); end
101
212
  end
102
213
  end
@@ -104,268 +215,379 @@ class TcpMetrics < ::Nl::Family
104
215
  # the TCP_METRIC_* defines in the kernel, because kernel defines
105
216
  # are off-by one (e.g. rtt is defined as enum 0, while netlink carries
106
217
  # attribute type 1).
107
- class Metrics < ::Nl::Protocols::Genl::AttributeSet
218
+ class Metrics < ::Nl::AttributeSet
108
219
  # Abstract class
109
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
220
+ class Attribute < ::Nl::AttributeSet::Attribute
110
221
  end
222
+ # Round Trip Time (RTT), in msecs with 3 bits fractional
223
+ # (left-shift by 3 to get the msec value).
111
224
  class Rtt < Attribute
112
225
  TYPE = 1
113
226
  NAME = :"rtt"
114
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
227
+ # @private
228
+ ORDER = 0
229
+ # @private
230
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
115
231
  end
232
+ # Round Trip Time VARiance (RTT), in msecs with 2 bits fractional
233
+ # (left-shift by 2 to get the msec value).
116
234
  class Rttvar < Attribute
117
235
  TYPE = 2
118
236
  NAME = :"rttvar"
119
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
237
+ # @private
238
+ ORDER = 1
239
+ # @private
240
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
120
241
  end
242
+ # Slow Start THRESHold.
121
243
  class Ssthresh < Attribute
122
244
  TYPE = 3
123
245
  NAME = :"ssthresh"
124
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
246
+ # @private
247
+ ORDER = 2
248
+ # @private
249
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
125
250
  end
251
+ # Congestion Window.
126
252
  class Cwnd < Attribute
127
253
  TYPE = 4
128
254
  NAME = :"cwnd"
129
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
255
+ # @private
256
+ ORDER = 3
257
+ # @private
258
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
130
259
  end
260
+ # Reodering metric.
131
261
  class Reodering < Attribute
132
262
  TYPE = 5
133
263
  NAME = :"reodering"
134
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
264
+ # @private
265
+ ORDER = 4
266
+ # @private
267
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
135
268
  end
269
+ # Round Trip Time (RTT), in usecs, with 3 bits fractional
270
+ # (left-shift by 3 to get the msec value).
136
271
  class RttUs < Attribute
137
272
  TYPE = 6
138
273
  NAME = :"rtt_us"
139
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
274
+ # @private
275
+ ORDER = 5
276
+ # @private
277
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
140
278
  end
279
+ # Round Trip Time (RTT), in usecs, with 2 bits fractional
280
+ # (left-shift by 3 to get the msec value).
141
281
  class RttvarUs < Attribute
142
282
  TYPE = 7
143
283
  NAME = :"rttvar_us"
144
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
284
+ # @private
285
+ ORDER = 6
286
+ # @private
287
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
145
288
  end
146
- # :nodoc:
289
+ # @private
147
290
  BY_NAME = Ractor.make_shareable({:"rtt" => Rtt, :"rttvar" => Rttvar, :"ssthresh" => Ssthresh, :"cwnd" => Cwnd, :"reodering" => Reodering, :"rtt_us" => RttUs, :"rttvar_us" => RttvarUs}) #: Hash[::Symbol, Attribute]
148
- # :nodoc:
291
+ # @private
149
292
  BY_TYPE = Ractor.make_shareable({1 => Rtt, 2 => Rttvar, 3 => Ssthresh, 4 => Cwnd, 5 => Reodering, 6 => RttUs, 7 => RttvarUs}) #: Hash[::Integer, Attribute]
293
+ # Round Trip Time (RTT), in msecs with 3 bits fractional
294
+ # (left-shift by 3 to get the msec value).
295
+ # @rbs return: ::Integer
296
+ # @return [Integer]
297
+ # @see Rtt
298
+ def rtt; self[:"rtt"]&.value; end
299
+ # Round Trip Time VARiance (RTT), in msecs with 2 bits fractional
300
+ # (left-shift by 2 to get the msec value).
301
+ # @rbs return: ::Integer
302
+ # @return [Integer]
303
+ # @see Rttvar
304
+ def rttvar; self[:"rttvar"]&.value; end
305
+ # Slow Start THRESHold.
306
+ # @rbs return: ::Integer
307
+ # @return [Integer]
308
+ # @see Ssthresh
309
+ def ssthresh; self[:"ssthresh"]&.value; end
310
+ # Congestion Window.
311
+ # @rbs return: ::Integer
312
+ # @return [Integer]
313
+ # @see Cwnd
314
+ def cwnd; self[:"cwnd"]&.value; end
315
+ # Reodering metric.
316
+ # @rbs return: ::Integer
317
+ # @return [Integer]
318
+ # @see Reodering
319
+ def reodering; self[:"reodering"]&.value; end
320
+ # Round Trip Time (RTT), in usecs, with 3 bits fractional
321
+ # (left-shift by 3 to get the msec value).
322
+ # @rbs return: ::Integer
323
+ # @return [Integer]
324
+ # @see RttUs
325
+ def rtt_us; self[:"rtt_us"]&.value; end
326
+ # Round Trip Time (RTT), in usecs, with 2 bits fractional
327
+ # (left-shift by 3 to get the msec value).
328
+ # @rbs return: ::Integer
329
+ # @return [Integer]
330
+ # @see RttvarUs
331
+ def rttvar_us; self[:"rttvar_us"]&.value; end
150
332
  class << self
151
333
  # Looks up Attribute class by name.
152
- #--
153
334
  # @rbs name: Symbol
154
335
  # @rbs return: Attribute
336
+ # @param [Symbol] name
337
+ # @return [Attribute]
155
338
  def by_name(name); BY_NAME.fetch(name); end
156
339
  # Looks up Attribute class by type value.
157
- #--
158
340
  # @rbs type: Integer
159
341
  # @rbs return: Attribute
342
+ # @param [Integer] type
343
+ # @return [Attribute]
160
344
  def by_type(type); BY_TYPE.fetch(type); end
161
345
  end
162
346
  end
163
- TcpMetrics::Vals::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Metrics)
347
+ # @private
348
+ TcpMetrics::Vals::DATATYPE = ::Nl::DataTypes::NestedAttributes.new(AttributeSets::Metrics, selector_bindings: Ractor.make_shareable([]))
164
349
  end
165
350
  module Messages
166
351
  # Retrieve metrics.
167
- class DoGetRequest < ::Nl::Protocols::Genl::Message
352
+ class DoGetRequest < ::Nl::Genl::Message
168
353
  TYPE = 1
169
354
  FIXED_HEADER = nil
170
355
  ATTRIBUTE_SET = AttributeSets::TcpMetrics
171
356
  ATTRIBUTES = Ractor.make_shareable(%i[addr_ipv4 addr_ipv6 saddr_ipv4 saddr_ipv6])
172
- # Gets the value of `addr-ipv4` attribute in the message.
173
- #--
174
357
  # @rbs return: ::Integer
358
+ # @return [Integer]
359
+ # @see AttributeSets::TcpMetrics::AddrIpv4
175
360
  def addr_ipv4; attributes[:"addr_ipv4"]&.value; end
176
- # Gets the value of `addr-ipv6` attribute in the message.
177
- #--
178
361
  # @rbs return: ::String
362
+ # @return [String]
363
+ # @see AttributeSets::TcpMetrics::AddrIpv6
179
364
  def addr_ipv6; attributes[:"addr_ipv6"]&.value; end
180
- # Gets the value of `saddr-ipv4` attribute in the message.
181
- #--
182
365
  # @rbs return: ::Integer
366
+ # @return [Integer]
367
+ # @see AttributeSets::TcpMetrics::SaddrIpv4
183
368
  def saddr_ipv4; attributes[:"saddr_ipv4"]&.value; end
184
- # Gets the value of `saddr-ipv6` attribute in the message.
185
- #--
186
369
  # @rbs return: ::String
370
+ # @return [String]
371
+ # @see AttributeSets::TcpMetrics::SaddrIpv6
187
372
  def saddr_ipv6; attributes[:"saddr_ipv6"]&.value; end
188
373
  end
189
374
  # Retrieve metrics.
190
- class DoGetReply < ::Nl::Protocols::Genl::Message
375
+ class DoGetReply < ::Nl::Genl::Message
191
376
  TYPE = 1
192
377
  FIXED_HEADER = nil
193
378
  ATTRIBUTE_SET = AttributeSets::TcpMetrics
194
379
  ATTRIBUTES = Ractor.make_shareable(%i[addr_ipv4 addr_ipv6 age vals fopen_mss fopen_syn_drops fopen_syn_drop_ts fopen_cookie saddr_ipv4 saddr_ipv6])
195
- # Gets the value of `addr-ipv4` attribute in the message.
196
- #--
197
380
  # @rbs return: ::Integer
381
+ # @return [Integer]
382
+ # @see AttributeSets::TcpMetrics::AddrIpv4
198
383
  def addr_ipv4; attributes[:"addr_ipv4"]&.value; end
199
- # Gets the value of `addr-ipv6` attribute in the message.
200
- #--
201
384
  # @rbs return: ::String
385
+ # @return [String]
386
+ # @see AttributeSets::TcpMetrics::AddrIpv6
202
387
  def addr_ipv6; attributes[:"addr_ipv6"]&.value; end
203
- # Gets the value of `age` attribute in the message.
204
- #--
205
388
  # @rbs return: ::Integer
389
+ # @return [Integer]
390
+ # @see AttributeSets::TcpMetrics::Age
206
391
  def age; attributes[:"age"]&.value; end
207
- # Gets the value of `vals` attribute in the message.
208
- #--
209
392
  # @rbs return: AttributeSets::Metrics
393
+ # @return [AttributeSets::Metrics]
394
+ # @see AttributeSets::TcpMetrics::Vals
210
395
  def vals; attributes[:"vals"]&.value; end
211
- # Gets the value of `fopen-mss` attribute in the message.
212
- #--
213
396
  # @rbs return: ::Integer
397
+ # @return [Integer]
398
+ # @see AttributeSets::TcpMetrics::FopenMss
214
399
  def fopen_mss; attributes[:"fopen_mss"]&.value; end
215
- # Gets the value of `fopen-syn-drops` attribute in the message.
216
- #--
217
400
  # @rbs return: ::Integer
401
+ # @return [Integer]
402
+ # @see AttributeSets::TcpMetrics::FopenSynDrops
218
403
  def fopen_syn_drops; attributes[:"fopen_syn_drops"]&.value; end
219
- # Gets the value of `fopen-syn-drop-ts` attribute in the message.
220
- #--
221
404
  # @rbs return: ::Integer
405
+ # @return [Integer]
406
+ # @see AttributeSets::TcpMetrics::FopenSynDropTs
222
407
  def fopen_syn_drop_ts; attributes[:"fopen_syn_drop_ts"]&.value; end
223
- # Gets the value of `fopen-cookie` attribute in the message.
224
- #--
225
408
  # @rbs return: ::String
409
+ # @return [String]
410
+ # @see AttributeSets::TcpMetrics::FopenCookie
226
411
  def fopen_cookie; attributes[:"fopen_cookie"]&.value; end
227
- # Gets the value of `saddr-ipv4` attribute in the message.
228
- #--
229
412
  # @rbs return: ::Integer
413
+ # @return [Integer]
414
+ # @see AttributeSets::TcpMetrics::SaddrIpv4
230
415
  def saddr_ipv4; attributes[:"saddr_ipv4"]&.value; end
231
- # Gets the value of `saddr-ipv6` attribute in the message.
232
- #--
233
416
  # @rbs return: ::String
417
+ # @return [String]
418
+ # @see AttributeSets::TcpMetrics::SaddrIpv6
234
419
  def saddr_ipv6; attributes[:"saddr_ipv6"]&.value; end
235
420
  end
236
421
  # Retrieve metrics.
237
- class DumpGetRequest < ::Nl::Protocols::Genl::Message
422
+ class DumpGetRequest < ::Nl::Genl::Message
238
423
  TYPE = 1
239
424
  FIXED_HEADER = nil
240
425
  ATTRIBUTE_SET = AttributeSets::TcpMetrics
241
426
  ATTRIBUTES = Ractor.make_shareable(%i[])
242
427
  end
243
428
  # Retrieve metrics.
244
- class DumpGetReply < ::Nl::Protocols::Genl::Message
429
+ class DumpGetReply < ::Nl::Genl::Message
245
430
  TYPE = 1
246
431
  FIXED_HEADER = nil
247
432
  ATTRIBUTE_SET = AttributeSets::TcpMetrics
248
433
  ATTRIBUTES = Ractor.make_shareable(%i[addr_ipv4 addr_ipv6 age vals fopen_mss fopen_syn_drops fopen_syn_drop_ts fopen_cookie saddr_ipv4 saddr_ipv6])
249
- # Gets the value of `addr-ipv4` attribute in the message.
250
- #--
251
434
  # @rbs return: ::Integer
435
+ # @return [Integer]
436
+ # @see AttributeSets::TcpMetrics::AddrIpv4
252
437
  def addr_ipv4; attributes[:"addr_ipv4"]&.value; end
253
- # Gets the value of `addr-ipv6` attribute in the message.
254
- #--
255
438
  # @rbs return: ::String
439
+ # @return [String]
440
+ # @see AttributeSets::TcpMetrics::AddrIpv6
256
441
  def addr_ipv6; attributes[:"addr_ipv6"]&.value; end
257
- # Gets the value of `age` attribute in the message.
258
- #--
259
442
  # @rbs return: ::Integer
443
+ # @return [Integer]
444
+ # @see AttributeSets::TcpMetrics::Age
260
445
  def age; attributes[:"age"]&.value; end
261
- # Gets the value of `vals` attribute in the message.
262
- #--
263
446
  # @rbs return: AttributeSets::Metrics
447
+ # @return [AttributeSets::Metrics]
448
+ # @see AttributeSets::TcpMetrics::Vals
264
449
  def vals; attributes[:"vals"]&.value; end
265
- # Gets the value of `fopen-mss` attribute in the message.
266
- #--
267
450
  # @rbs return: ::Integer
451
+ # @return [Integer]
452
+ # @see AttributeSets::TcpMetrics::FopenMss
268
453
  def fopen_mss; attributes[:"fopen_mss"]&.value; end
269
- # Gets the value of `fopen-syn-drops` attribute in the message.
270
- #--
271
454
  # @rbs return: ::Integer
455
+ # @return [Integer]
456
+ # @see AttributeSets::TcpMetrics::FopenSynDrops
272
457
  def fopen_syn_drops; attributes[:"fopen_syn_drops"]&.value; end
273
- # Gets the value of `fopen-syn-drop-ts` attribute in the message.
274
- #--
275
458
  # @rbs return: ::Integer
459
+ # @return [Integer]
460
+ # @see AttributeSets::TcpMetrics::FopenSynDropTs
276
461
  def fopen_syn_drop_ts; attributes[:"fopen_syn_drop_ts"]&.value; end
277
- # Gets the value of `fopen-cookie` attribute in the message.
278
- #--
279
462
  # @rbs return: ::String
463
+ # @return [String]
464
+ # @see AttributeSets::TcpMetrics::FopenCookie
280
465
  def fopen_cookie; attributes[:"fopen_cookie"]&.value; end
281
- # Gets the value of `saddr-ipv4` attribute in the message.
282
- #--
283
466
  # @rbs return: ::Integer
467
+ # @return [Integer]
468
+ # @see AttributeSets::TcpMetrics::SaddrIpv4
284
469
  def saddr_ipv4; attributes[:"saddr_ipv4"]&.value; end
285
- # Gets the value of `saddr-ipv6` attribute in the message.
286
- #--
287
470
  # @rbs return: ::String
471
+ # @return [String]
472
+ # @see AttributeSets::TcpMetrics::SaddrIpv6
288
473
  def saddr_ipv6; attributes[:"saddr_ipv6"]&.value; end
289
474
  end
290
475
  # Delete metrics.
291
476
  #
292
477
  # Requires CAP_NET_ADMIN in the initial user namespace.
293
- class DoDelRequest < ::Nl::Protocols::Genl::Message
478
+ class DoDelRequest < ::Nl::Genl::Message
294
479
  TYPE = 2
295
480
  FIXED_HEADER = nil
296
481
  ATTRIBUTE_SET = AttributeSets::TcpMetrics
297
482
  ATTRIBUTES = Ractor.make_shareable(%i[addr_ipv4 addr_ipv6 saddr_ipv4 saddr_ipv6])
298
- # Gets the value of `addr-ipv4` attribute in the message.
299
- #--
300
483
  # @rbs return: ::Integer
484
+ # @return [Integer]
485
+ # @see AttributeSets::TcpMetrics::AddrIpv4
301
486
  def addr_ipv4; attributes[:"addr_ipv4"]&.value; end
302
- # Gets the value of `addr-ipv6` attribute in the message.
303
- #--
304
487
  # @rbs return: ::String
488
+ # @return [String]
489
+ # @see AttributeSets::TcpMetrics::AddrIpv6
305
490
  def addr_ipv6; attributes[:"addr_ipv6"]&.value; end
306
- # Gets the value of `saddr-ipv4` attribute in the message.
307
- #--
308
491
  # @rbs return: ::Integer
492
+ # @return [Integer]
493
+ # @see AttributeSets::TcpMetrics::SaddrIpv4
309
494
  def saddr_ipv4; attributes[:"saddr_ipv4"]&.value; end
310
- # Gets the value of `saddr-ipv6` attribute in the message.
311
- #--
312
495
  # @rbs return: ::String
496
+ # @return [String]
497
+ # @see AttributeSets::TcpMetrics::SaddrIpv6
313
498
  def saddr_ipv6; attributes[:"saddr_ipv6"]&.value; end
314
499
  end
315
500
  end
316
501
  module Notifications
317
502
  end
503
+ # @private
318
504
  NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
319
505
  # Retrieve metrics.
320
- #--
321
506
  # @rbs (?addr_ipv4: ::Integer, ?addr_ipv6: ::String, ?saddr_ipv4: ::Integer, ?saddr_ipv6: ::String) -> Messages::DoGetReply
507
+ # @param [Hash] args
508
+ # @option args [Integer] addr_ipv4
509
+ # @option args [String] addr_ipv6
510
+ # @option args [Integer] saddr_ipv4
511
+ # @option args [String] saddr_ipv6
512
+ # @return [Messages::DoGetReply]
513
+ # @see Messages::DoGetRequest
322
514
  def do_get(**args)
323
515
  exchange_message(:"do", Messages::DoGetRequest, Messages::DoGetReply, args)
324
516
  end
325
517
  # Retrieve metrics.
326
- #--
327
- # @rbs () -> Enumerable[Messages::DumpGetReply]
518
+ # @rbs () -> Array[Messages::DumpGetReply]
328
519
  # | () { (Messages::DumpGetReply) -> void } -> void
520
+ # @overload dump_get(**args)
521
+ # Returns an array when no block is given.
522
+ # @param [Hash] args
523
+ # @return [Array<Messages::DumpGetReply>]
524
+ # @overload dump_get(**args, &block)
525
+ # Yields each reply when a block is given.
526
+ # @param [Hash] args
527
+ # @yieldparam [Messages::DumpGetReply] reply
528
+ # @return [void]
529
+ # @see Messages::DumpGetRequest
329
530
  def dump_get(**args, &block)
330
531
  exchange_message(:"dump", Messages::DumpGetRequest, Messages::DumpGetReply, args, &block)
331
532
  end
332
533
  # Delete metrics.
333
534
  #
334
535
  # Requires CAP_NET_ADMIN in the initial user namespace.
335
- #--
336
536
  # @rbs (?addr_ipv4: ::Integer, ?addr_ipv6: ::String, ?saddr_ipv4: ::Integer, ?saddr_ipv6: ::String) -> void
537
+ # @param [Hash] args
538
+ # @option args [Integer] addr_ipv4
539
+ # @option args [String] addr_ipv6
540
+ # @option args [Integer] saddr_ipv4
541
+ # @option args [String] saddr_ipv6
542
+ # @return [void]
543
+ # @see Messages::DoDelRequest
337
544
  def do_del(**args)
338
545
  exchange_message(:"do", Messages::DoDelRequest, nil, args)
339
546
  end
340
547
  class AsyncOperations
341
- # :nodoc:
548
+ # @private
342
549
  def initialize(&exchange)
343
550
  @exchange = exchange
344
551
  end
345
552
  # Retrieve metrics.
346
- #--
347
553
  # @rbs (?addr_ipv4: ::Integer, ?addr_ipv6: ::String, ?saddr_ipv4: ::Integer, ?saddr_ipv6: ::String) -> ::Nl::Async::Future[Messages::DoGetReply]
554
+ # @param [Hash] args
555
+ # @option args [Integer] addr_ipv4
556
+ # @option args [String] addr_ipv6
557
+ # @option args [Integer] saddr_ipv4
558
+ # @option args [String] saddr_ipv6
559
+ # @return [Nl::Async::Future<Messages::DoGetReply>]
560
+ # @see Messages::DoGetRequest
348
561
  def do_get(**args)
349
562
  @exchange.call(:"do", Messages::DoGetRequest, Messages::DoGetReply, args)
350
563
  end
351
564
  # Retrieve metrics.
352
- #--
353
565
  # @rbs () -> ::Nl::Async::Stream[Messages::DumpGetReply]
566
+ # @param [Hash] args
567
+ # @return [Nl::Async::Stream<Messages::DumpGetReply>]
568
+ # @see Messages::DumpGetRequest
354
569
  def dump_get(**args)
355
570
  @exchange.call(:"dump", Messages::DumpGetRequest, Messages::DumpGetReply, args)
356
571
  end
357
572
  # Delete metrics.
358
573
  #
359
574
  # Requires CAP_NET_ADMIN in the initial user namespace.
360
- #--
361
575
  # @rbs (?addr_ipv4: ::Integer, ?addr_ipv6: ::String, ?saddr_ipv4: ::Integer, ?saddr_ipv6: ::String) -> ::Nl::Async::Future[void]
576
+ # @param [Hash] args
577
+ # @option args [Integer] addr_ipv4
578
+ # @option args [String] addr_ipv6
579
+ # @option args [Integer] saddr_ipv4
580
+ # @option args [String] saddr_ipv6
581
+ # @return [Nl::Async::Future<void>]
582
+ # @see Messages::DoDelRequest
362
583
  def do_del(**args)
363
584
  @exchange.call(:"do", Messages::DoDelRequest, nil, args)
364
585
  end
365
586
  end
366
587
  # Returns the asynchronous operation facade for this family.
367
- #--
368
588
  # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
589
+ # @param [::Integer, nil] stream_capacity
590
+ # @return [AsyncOperations]
369
591
  def async(stream_capacity: nil)
370
592
  return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
371
593
  build_async_facade(AsyncOperations, stream_capacity:)