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
@@ -1,33 +1,69 @@
1
1
  # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #
3
+ # This file is based on Documentation/netlink/specs/rt-rule.yaml from Linux v7.2.
2
4
  #--
3
5
  # frozen_string_literal: true
4
- # rbs_inline: enabled
5
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
6
7
  require 'nl'
7
8
  module Nl; module Linux
8
9
  # FIB rule management over rtnetlink.
9
- class RtRule < ::Nl::Family
10
+ class RtRule < ::Nl::Raw::Family
10
11
  NAME = "rt-rule"
11
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Raw.new("rt-rule", 0))
12
+ PROTONUM = 0
13
+ # @rbs (?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
14
+ # @rbs | [R] (?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
15
+ # @overload open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
16
+ # @param [Symbol, nil] executor
17
+ # @param [Integer, nil] notification_capacity
18
+ # @return [RtRule]
19
+ # @overload open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
20
+ # @param [Symbol, nil] executor
21
+ # @param [Integer, nil] notification_capacity
22
+ # @yieldparam [RtRule] family
23
+ # @return [Object] the result of the block
24
+ def self.open(executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
25
+ super
26
+ end
27
+ # @private
28
+ MCAST_GROUPS = Ractor.make_shareable({:"rtnlgrp_ipv4_rule" => ::Nl::McastGroup.new("rtnlgrp-ipv4-rule", 8), :"rtnlgrp_ipv6_rule" => ::Nl::McastGroup.new("rtnlgrp-ipv6-rule", 19)}) #: Hash[::Symbol, ::Nl::McastGroup]
29
+ module Enums
30
+ module FrAct
31
+ Unspec = 0
32
+ ToTbl = 1
33
+ Goto = 2
34
+ Nop = 3
35
+ Res3 = 4
36
+ Res4 = 5
37
+ Blackhole = 6
38
+ Unreachable = 7
39
+ Prohibit = 8
40
+ end
41
+ end
12
42
  module Structs
13
43
  Rtgenmsg = Struct.new(
14
44
  :"family", #: ::Integer
15
45
  :"pad", #: nil
16
46
  )
17
47
  class Rtgenmsg
18
- # :nodoc:
19
- MEMBERS = Ractor.make_shareable({family: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), pad: ::Nl::Protocols::Raw::DataTypes::Pad.new(3)}) #: Hash[::Symbol, ::Nl::_DataType]
48
+ # @!attribute [rw] family
49
+ # @return [Integer]
50
+ # @!attribute [rw] pad
51
+ # @return [nil]
52
+ # @private
53
+ MEMBERS = Ractor.make_shareable({family: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), pad: ::Nl::DataTypes::Pad.new(3)}) #: Hash[::Symbol, ::Nl::_DataType]
20
54
  # Decodes the struct.
21
- #--
22
55
  # @rbs decoder: ::Nl::Decoder
23
56
  # @rbs return: instance
57
+ # @param [Nl::Decoder] decoder
58
+ # @return [self]
24
59
  def self.decode(decoder)
25
60
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
26
61
  end
27
62
  # Encodes the struct.
28
- #--
29
63
  # @rbs encoder: ::Nl::Encoder
30
64
  # @rbs return: void
65
+ # @param [Nl::Encoder] encoder
66
+ # @return [void]
31
67
  def encode(encoder)
32
68
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
33
69
  end
@@ -44,19 +80,39 @@ class RtRule < ::Nl::Family
44
80
  :"flags", #: ::Integer
45
81
  )
46
82
  class FibRuleHdr
47
- # :nodoc:
48
- MEMBERS = Ractor.make_shareable({family: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), dst_len: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), src_len: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), tos: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), table: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), res1: ::Nl::Protocols::Raw::DataTypes::Pad.new(1), res2: ::Nl::Protocols::Raw::DataTypes::Pad.new(1), action: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), flags: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
83
+ # @!attribute [rw] family
84
+ # @return [Integer]
85
+ # @!attribute [rw] dst_len
86
+ # @return [Integer]
87
+ # @!attribute [rw] src_len
88
+ # @return [Integer]
89
+ # @!attribute [rw] tos
90
+ # @return [Integer]
91
+ # @!attribute [rw] table
92
+ # @return [Integer]
93
+ # @!attribute [rw] res1
94
+ # @return [nil]
95
+ # @!attribute [rw] res2
96
+ # @return [nil]
97
+ # @!attribute [rw] action
98
+ # @return [Integer]
99
+ # @!attribute [rw] flags
100
+ # @return [Integer]
101
+ # @private
102
+ MEMBERS = Ractor.make_shareable({family: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), dst_len: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), src_len: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), tos: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), table: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), res1: ::Nl::DataTypes::Pad.new(1), res2: ::Nl::DataTypes::Pad.new(1), action: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), flags: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
49
103
  # Decodes the struct.
50
- #--
51
104
  # @rbs decoder: ::Nl::Decoder
52
105
  # @rbs return: instance
106
+ # @param [Nl::Decoder] decoder
107
+ # @return [self]
53
108
  def self.decode(decoder)
54
109
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
55
110
  end
56
111
  # Encodes the struct.
57
- #--
58
112
  # @rbs encoder: ::Nl::Encoder
59
113
  # @rbs return: void
114
+ # @param [Nl::Encoder] encoder
115
+ # @return [void]
60
116
  def encode(encoder)
61
117
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
62
118
  end
@@ -66,19 +122,25 @@ class RtRule < ::Nl::Family
66
122
  :"end", #: ::Integer
67
123
  )
68
124
  class FibRulePortRange
69
- # :nodoc:
70
- MEMBERS = Ractor.make_shareable({start: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil), end: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
125
+ # @!attribute [rw] start
126
+ # @return [Integer]
127
+ # @!attribute [rw] end
128
+ # @return [Integer]
129
+ # @private
130
+ MEMBERS = Ractor.make_shareable({start: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil), end: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
71
131
  # Decodes the struct.
72
- #--
73
132
  # @rbs decoder: ::Nl::Decoder
74
133
  # @rbs return: instance
134
+ # @param [Nl::Decoder] decoder
135
+ # @return [self]
75
136
  def self.decode(decoder)
76
137
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
77
138
  end
78
139
  # Encodes the struct.
79
- #--
80
140
  # @rbs encoder: ::Nl::Encoder
81
141
  # @rbs return: void
142
+ # @param [Nl::Encoder] encoder
143
+ # @return [void]
82
144
  def encode(encoder)
83
145
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
84
146
  end
@@ -88,621 +150,1228 @@ class RtRule < ::Nl::Family
88
150
  :"end", #: ::Integer
89
151
  )
90
152
  class FibRuleUidRange
91
- # :nodoc:
92
- MEMBERS = Ractor.make_shareable({start: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), end: ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
153
+ # @!attribute [rw] start
154
+ # @return [Integer]
155
+ # @!attribute [rw] end
156
+ # @return [Integer]
157
+ # @private
158
+ MEMBERS = Ractor.make_shareable({start: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), end: ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
93
159
  # Decodes the struct.
94
- #--
95
160
  # @rbs decoder: ::Nl::Decoder
96
161
  # @rbs return: instance
162
+ # @param [Nl::Decoder] decoder
163
+ # @return [self]
97
164
  def self.decode(decoder)
98
165
  self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
99
166
  end
100
167
  # Encodes the struct.
101
- #--
102
168
  # @rbs encoder: ::Nl::Encoder
103
169
  # @rbs return: void
170
+ # @param [Nl::Encoder] encoder
171
+ # @return [void]
104
172
  def encode(encoder)
105
173
  MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
106
174
  end
107
175
  end
108
176
  end
109
177
  module AttributeSets
110
- class FibRuleAttrs < ::Nl::Protocols::Raw::AttributeSet
178
+ class FibRuleAttrs < ::Nl::AttributeSet
111
179
  # Abstract class
112
- class Attribute < ::Nl::Protocols::Raw::AttributeSet::Attribute
180
+ class Attribute < ::Nl::AttributeSet::Attribute
113
181
  end
114
182
  class Dst < Attribute
115
183
  TYPE = 1
116
184
  NAME = :"dst"
117
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
185
+ # @private
186
+ ORDER = 0
187
+ # @private
188
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
118
189
  end
119
190
  class Src < Attribute
120
191
  TYPE = 2
121
192
  NAME = :"src"
122
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
193
+ # @private
194
+ ORDER = 1
195
+ # @private
196
+ DATATYPE = ::Nl::DataTypes::Binary.new(check: nil)
123
197
  end
124
198
  class Iifname < Attribute
125
199
  TYPE = 3
126
200
  NAME = :"iifname"
127
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
201
+ # @private
202
+ ORDER = 2
203
+ # @private
204
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
128
205
  end
129
206
  class Goto < Attribute
130
207
  TYPE = 4
131
208
  NAME = :"goto"
132
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
209
+ # @private
210
+ ORDER = 3
211
+ # @private
212
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
133
213
  end
134
214
  class Unused2 < Attribute
135
215
  TYPE = 5
136
216
  NAME = :"unused2"
137
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Pad.new()
217
+ # @private
218
+ ORDER = 4
219
+ # @private
220
+ DATATYPE = ::Nl::DataTypes::Pad.new()
138
221
  end
139
222
  class Priority < Attribute
140
223
  TYPE = 6
141
224
  NAME = :"priority"
142
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
225
+ # @private
226
+ ORDER = 5
227
+ # @private
228
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
143
229
  end
144
230
  class Unused3 < Attribute
145
231
  TYPE = 7
146
232
  NAME = :"unused3"
147
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Pad.new()
233
+ # @private
234
+ ORDER = 6
235
+ # @private
236
+ DATATYPE = ::Nl::DataTypes::Pad.new()
148
237
  end
149
238
  class Unused4 < Attribute
150
239
  TYPE = 8
151
240
  NAME = :"unused4"
152
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Pad.new()
241
+ # @private
242
+ ORDER = 7
243
+ # @private
244
+ DATATYPE = ::Nl::DataTypes::Pad.new()
153
245
  end
154
246
  class Unused5 < Attribute
155
247
  TYPE = 9
156
248
  NAME = :"unused5"
157
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Pad.new()
249
+ # @private
250
+ ORDER = 8
251
+ # @private
252
+ DATATYPE = ::Nl::DataTypes::Pad.new()
158
253
  end
159
254
  class Fwmark < Attribute
160
255
  TYPE = 10
161
256
  NAME = :"fwmark"
162
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
257
+ # @private
258
+ ORDER = 9
259
+ # @private
260
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
163
261
  end
164
262
  class Flow < Attribute
165
263
  TYPE = 11
166
264
  NAME = :"flow"
167
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
265
+ # @private
266
+ ORDER = 10
267
+ # @private
268
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
168
269
  end
169
270
  class TunId < Attribute
170
271
  TYPE = 12
171
272
  NAME = :"tun_id"
172
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
273
+ # @private
274
+ ORDER = 11
275
+ # @private
276
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
173
277
  end
174
278
  class SuppressIfgroup < Attribute
175
279
  TYPE = 13
176
280
  NAME = :"suppress_ifgroup"
177
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
281
+ # @private
282
+ ORDER = 12
283
+ # @private
284
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
178
285
  end
179
286
  class SuppressPrefixlen < Attribute
180
287
  TYPE = 14
181
288
  NAME = :"suppress_prefixlen"
182
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
289
+ # @private
290
+ ORDER = 13
291
+ # @private
292
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
183
293
  end
184
294
  class Table < Attribute
185
295
  TYPE = 15
186
296
  NAME = :"table"
187
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
297
+ # @private
298
+ ORDER = 14
299
+ # @private
300
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
188
301
  end
189
302
  class Fwmask < Attribute
190
303
  TYPE = 16
191
304
  NAME = :"fwmask"
192
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
305
+ # @private
306
+ ORDER = 15
307
+ # @private
308
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
193
309
  end
194
310
  class Oifname < Attribute
195
311
  TYPE = 17
196
312
  NAME = :"oifname"
197
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
313
+ # @private
314
+ ORDER = 16
315
+ # @private
316
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
198
317
  end
199
318
  class Pad < Attribute
200
319
  TYPE = 18
201
320
  NAME = :"pad"
202
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Pad.new()
321
+ # @private
322
+ ORDER = 17
323
+ # @private
324
+ DATATYPE = ::Nl::DataTypes::Pad.new()
203
325
  end
204
326
  class L3mdev < Attribute
205
327
  TYPE = 19
206
328
  NAME = :"l3mdev"
207
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
329
+ # @private
330
+ ORDER = 18
331
+ # @private
332
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
208
333
  end
209
334
  class UidRange < Attribute
210
335
  TYPE = 20
211
336
  NAME = :"uid_range"
212
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
337
+ # @private
338
+ ORDER = 19
339
+ # @private
340
+ DATATYPE = ::Nl::DataTypes::Struct.new(Structs::FibRuleUidRange, check: nil, consume_remaining: true)
213
341
  end
214
342
  class Protocol < Attribute
215
343
  TYPE = 21
216
344
  NAME = :"protocol"
217
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
345
+ # @private
346
+ ORDER = 20
347
+ # @private
348
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
218
349
  end
219
350
  class IpProto < Attribute
220
351
  TYPE = 22
221
352
  NAME = :"ip_proto"
222
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
353
+ # @private
354
+ ORDER = 21
355
+ # @private
356
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
223
357
  end
224
358
  class SportRange < Attribute
225
359
  TYPE = 23
226
360
  NAME = :"sport_range"
227
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
361
+ # @private
362
+ ORDER = 22
363
+ # @private
364
+ DATATYPE = ::Nl::DataTypes::Struct.new(Structs::FibRulePortRange, check: nil, consume_remaining: true)
228
365
  end
229
366
  class DportRange < Attribute
230
367
  TYPE = 24
231
368
  NAME = :"dport_range"
232
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
369
+ # @private
370
+ ORDER = 23
371
+ # @private
372
+ DATATYPE = ::Nl::DataTypes::Struct.new(Structs::FibRulePortRange, check: nil, consume_remaining: true)
233
373
  end
234
374
  class Dscp < Attribute
235
375
  TYPE = 25
236
376
  NAME = :"dscp"
237
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
377
+ # @private
378
+ ORDER = 24
379
+ # @private
380
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
238
381
  end
239
382
  class Flowlabel < Attribute
240
383
  TYPE = 26
241
384
  NAME = :"flowlabel"
242
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
385
+ # @private
386
+ ORDER = 25
387
+ # @private
388
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
243
389
  end
244
390
  class FlowlabelMask < Attribute
245
391
  TYPE = 27
246
392
  NAME = :"flowlabel_mask"
247
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
393
+ # @private
394
+ ORDER = 26
395
+ # @private
396
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
248
397
  end
249
398
  class SportMask < Attribute
250
399
  TYPE = 28
251
400
  NAME = :"sport_mask"
252
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
401
+ # @private
402
+ ORDER = 27
403
+ # @private
404
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
253
405
  end
254
406
  class DportMask < Attribute
255
407
  TYPE = 29
256
408
  NAME = :"dport_mask"
257
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
409
+ # @private
410
+ ORDER = 28
411
+ # @private
412
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
258
413
  end
259
414
  class DscpMask < Attribute
260
415
  TYPE = 30
261
416
  NAME = :"dscp_mask"
262
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
417
+ # @private
418
+ ORDER = 29
419
+ # @private
420
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
263
421
  end
264
- # :nodoc:
422
+ # @private
265
423
  BY_NAME = Ractor.make_shareable({:"dst" => Dst, :"src" => Src, :"iifname" => Iifname, :"goto" => Goto, :"unused2" => Unused2, :"priority" => Priority, :"unused3" => Unused3, :"unused4" => Unused4, :"unused5" => Unused5, :"fwmark" => Fwmark, :"flow" => Flow, :"tun_id" => TunId, :"suppress_ifgroup" => SuppressIfgroup, :"suppress_prefixlen" => SuppressPrefixlen, :"table" => Table, :"fwmask" => Fwmask, :"oifname" => Oifname, :"pad" => Pad, :"l3mdev" => L3mdev, :"uid_range" => UidRange, :"protocol" => Protocol, :"ip_proto" => IpProto, :"sport_range" => SportRange, :"dport_range" => DportRange, :"dscp" => Dscp, :"flowlabel" => Flowlabel, :"flowlabel_mask" => FlowlabelMask, :"sport_mask" => SportMask, :"dport_mask" => DportMask, :"dscp_mask" => DscpMask}) #: Hash[::Symbol, Attribute]
266
- # :nodoc:
424
+ # @private
267
425
  BY_TYPE = Ractor.make_shareable({1 => Dst, 2 => Src, 3 => Iifname, 4 => Goto, 5 => Unused2, 6 => Priority, 7 => Unused3, 8 => Unused4, 9 => Unused5, 10 => Fwmark, 11 => Flow, 12 => TunId, 13 => SuppressIfgroup, 14 => SuppressPrefixlen, 15 => Table, 16 => Fwmask, 17 => Oifname, 18 => Pad, 19 => L3mdev, 20 => UidRange, 21 => Protocol, 22 => IpProto, 23 => SportRange, 24 => DportRange, 25 => Dscp, 26 => Flowlabel, 27 => FlowlabelMask, 28 => SportMask, 29 => DportMask, 30 => DscpMask}) #: Hash[::Integer, Attribute]
426
+ # @rbs return: ::String
427
+ # @return [String]
428
+ # @see Dst
429
+ def dst; self[:"dst"]&.value; end
430
+ # @rbs return: ::String
431
+ # @return [String]
432
+ # @see Src
433
+ def src; self[:"src"]&.value; end
434
+ # @rbs return: ::String
435
+ # @return [String]
436
+ # @see Iifname
437
+ def iifname; self[:"iifname"]&.value; end
438
+ # @rbs return: ::Integer
439
+ # @return [Integer]
440
+ # @see Goto
441
+ def goto; self[:"goto"]&.value; end
442
+ # @rbs return: ::Integer
443
+ # @return [Integer]
444
+ # @see Priority
445
+ def priority; self[:"priority"]&.value; end
446
+ # @rbs return: ::Integer
447
+ # @return [Integer]
448
+ # @see Fwmark
449
+ def fwmark; self[:"fwmark"]&.value; end
450
+ # @rbs return: ::Integer
451
+ # @return [Integer]
452
+ # @see Flow
453
+ def flow; self[:"flow"]&.value; end
454
+ # @rbs return: ::Integer
455
+ # @return [Integer]
456
+ # @see TunId
457
+ def tun_id; self[:"tun_id"]&.value; end
458
+ # @rbs return: ::Integer
459
+ # @return [Integer]
460
+ # @see SuppressIfgroup
461
+ def suppress_ifgroup; self[:"suppress_ifgroup"]&.value; end
462
+ # @rbs return: ::Integer
463
+ # @return [Integer]
464
+ # @see SuppressPrefixlen
465
+ def suppress_prefixlen; self[:"suppress_prefixlen"]&.value; end
466
+ # @rbs return: ::Integer
467
+ # @return [Integer]
468
+ # @see Table
469
+ def table; self[:"table"]&.value; end
470
+ # @rbs return: ::Integer
471
+ # @return [Integer]
472
+ # @see Fwmask
473
+ def fwmask; self[:"fwmask"]&.value; end
474
+ # @rbs return: ::String
475
+ # @return [String]
476
+ # @see Oifname
477
+ def oifname; self[:"oifname"]&.value; end
478
+ # @rbs return: ::Integer
479
+ # @return [Integer]
480
+ # @see L3mdev
481
+ def l3mdev; self[:"l3mdev"]&.value; end
482
+ # @rbs return: Structs::FibRuleUidRange
483
+ # @return [Structs::FibRuleUidRange]
484
+ # @see UidRange
485
+ def uid_range; self[:"uid_range"]&.value; end
486
+ # @rbs return: ::Integer
487
+ # @return [Integer]
488
+ # @see Protocol
489
+ def protocol; self[:"protocol"]&.value; end
490
+ # @rbs return: ::Integer
491
+ # @return [Integer]
492
+ # @see IpProto
493
+ def ip_proto; self[:"ip_proto"]&.value; end
494
+ # @rbs return: Structs::FibRulePortRange
495
+ # @return [Structs::FibRulePortRange]
496
+ # @see SportRange
497
+ def sport_range; self[:"sport_range"]&.value; end
498
+ # @rbs return: Structs::FibRulePortRange
499
+ # @return [Structs::FibRulePortRange]
500
+ # @see DportRange
501
+ def dport_range; self[:"dport_range"]&.value; end
502
+ # @rbs return: ::Integer
503
+ # @return [Integer]
504
+ # @see Dscp
505
+ def dscp; self[:"dscp"]&.value; end
506
+ # @rbs return: ::Integer
507
+ # @return [Integer]
508
+ # @see Flowlabel
509
+ def flowlabel; self[:"flowlabel"]&.value; end
510
+ # @rbs return: ::Integer
511
+ # @return [Integer]
512
+ # @see FlowlabelMask
513
+ def flowlabel_mask; self[:"flowlabel_mask"]&.value; end
514
+ # @rbs return: ::Integer
515
+ # @return [Integer]
516
+ # @see SportMask
517
+ def sport_mask; self[:"sport_mask"]&.value; end
518
+ # @rbs return: ::Integer
519
+ # @return [Integer]
520
+ # @see DportMask
521
+ def dport_mask; self[:"dport_mask"]&.value; end
522
+ # @rbs return: ::Integer
523
+ # @return [Integer]
524
+ # @see DscpMask
525
+ def dscp_mask; self[:"dscp_mask"]&.value; end
268
526
  class << self
269
527
  # Looks up Attribute class by name.
270
- #--
271
528
  # @rbs name: Symbol
272
529
  # @rbs return: Attribute
530
+ # @param [Symbol] name
531
+ # @return [Attribute]
273
532
  def by_name(name); BY_NAME.fetch(name); end
274
533
  # Looks up Attribute class by type value.
275
- #--
276
534
  # @rbs type: Integer
277
535
  # @rbs return: Attribute
536
+ # @param [Integer] type
537
+ # @return [Attribute]
278
538
  def by_type(type); BY_TYPE.fetch(type); end
279
539
  end
280
540
  end
281
541
  end
282
542
  module Messages
283
543
  # Add new FIB rule
284
- class DoNewruleRequest < ::Nl::Protocols::Raw::Message
544
+ class DoNewruleRequest < ::Nl::Raw::Message
285
545
  TYPE = 32
286
546
  FIXED_HEADER = Structs::FibRuleHdr
287
547
  ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
288
548
  ATTRIBUTES = Ractor.make_shareable(%i[iifname goto priority fwmark flow tun_id suppress_ifgroup suppress_prefixlen table fwmask oifname l3mdev uid_range protocol ip_proto sport_range dport_range dscp flowlabel flowlabel_mask sport_mask dport_mask dscp_mask])
289
- # Gets the value of `family` field in the message's fixed header.
290
- #--
291
549
  # @rbs return: ::Integer
550
+ # @return [Integer]
292
551
  def family; fixed_header.family; end
293
- # Gets the value of `dst-len` field in the message's fixed header.
294
- #--
295
552
  # @rbs return: ::Integer
553
+ # @return [Integer]
296
554
  def dst_len; fixed_header.dst_len; end
297
- # Gets the value of `src-len` field in the message's fixed header.
298
- #--
299
555
  # @rbs return: ::Integer
556
+ # @return [Integer]
300
557
  def src_len; fixed_header.src_len; end
301
- # Gets the value of `tos` field in the message's fixed header.
302
- #--
303
558
  # @rbs return: ::Integer
559
+ # @return [Integer]
304
560
  def tos; fixed_header.tos; end
305
- # Gets the value of `action` field in the message's fixed header.
306
- #--
307
561
  # @rbs return: ::Integer
562
+ # @return [Integer]
308
563
  def action; fixed_header.action; end
309
- # Gets the value of `flags` field in the message's fixed header.
310
- #--
311
564
  # @rbs return: ::Integer
565
+ # @return [Integer]
312
566
  def flags; fixed_header.flags; end
313
- # Gets the value of `iifname` attribute in the message.
314
- #--
315
567
  # @rbs return: ::String
568
+ # @return [String]
569
+ # @see AttributeSets::FibRuleAttrs::Iifname
316
570
  def iifname; attributes[:"iifname"]&.value; end
317
- # Gets the value of `goto` attribute in the message.
318
- #--
319
571
  # @rbs return: ::Integer
572
+ # @return [Integer]
573
+ # @see AttributeSets::FibRuleAttrs::Goto
320
574
  def goto; attributes[:"goto"]&.value; end
321
- # Gets the value of `priority` attribute in the message.
322
- #--
323
575
  # @rbs return: ::Integer
576
+ # @return [Integer]
577
+ # @see AttributeSets::FibRuleAttrs::Priority
324
578
  def priority; attributes[:"priority"]&.value; end
325
- # Gets the value of `fwmark` attribute in the message.
326
- #--
327
579
  # @rbs return: ::Integer
580
+ # @return [Integer]
581
+ # @see AttributeSets::FibRuleAttrs::Fwmark
328
582
  def fwmark; attributes[:"fwmark"]&.value; end
329
- # Gets the value of `flow` attribute in the message.
330
- #--
331
583
  # @rbs return: ::Integer
584
+ # @return [Integer]
585
+ # @see AttributeSets::FibRuleAttrs::Flow
332
586
  def flow; attributes[:"flow"]&.value; end
333
- # Gets the value of `tun-id` attribute in the message.
334
- #--
335
587
  # @rbs return: ::Integer
588
+ # @return [Integer]
589
+ # @see AttributeSets::FibRuleAttrs::TunId
336
590
  def tun_id; attributes[:"tun_id"]&.value; end
337
- # Gets the value of `suppress-ifgroup` attribute in the message.
338
- #--
339
591
  # @rbs return: ::Integer
592
+ # @return [Integer]
593
+ # @see AttributeSets::FibRuleAttrs::SuppressIfgroup
340
594
  def suppress_ifgroup; attributes[:"suppress_ifgroup"]&.value; end
341
- # Gets the value of `suppress-prefixlen` attribute in the message.
342
- #--
343
595
  # @rbs return: ::Integer
596
+ # @return [Integer]
597
+ # @see AttributeSets::FibRuleAttrs::SuppressPrefixlen
344
598
  def suppress_prefixlen; attributes[:"suppress_prefixlen"]&.value; end
345
- # Gets the value of `table` attribute or fixed header in the message.
346
- #--
347
599
  # @rbs return: ::Integer
600
+ # @return [Integer]
601
+ # @see AttributeSets::FibRuleAttrs::Table
348
602
  def table; attributes[:"table"]&.value || fixed_header.table; end
349
- # Gets the value of `fwmask` attribute in the message.
350
- #--
351
603
  # @rbs return: ::Integer
604
+ # @return [Integer]
605
+ # @see AttributeSets::FibRuleAttrs::Fwmask
352
606
  def fwmask; attributes[:"fwmask"]&.value; end
353
- # Gets the value of `oifname` attribute in the message.
354
- #--
355
607
  # @rbs return: ::String
608
+ # @return [String]
609
+ # @see AttributeSets::FibRuleAttrs::Oifname
356
610
  def oifname; attributes[:"oifname"]&.value; end
357
- # Gets the value of `l3mdev` attribute in the message.
358
- #--
359
611
  # @rbs return: ::Integer
612
+ # @return [Integer]
613
+ # @see AttributeSets::FibRuleAttrs::L3mdev
360
614
  def l3mdev; attributes[:"l3mdev"]&.value; end
361
- # Gets the value of `uid-range` attribute in the message.
362
- #--
363
- # @rbs return: untyped
615
+ # @rbs return: Structs::FibRuleUidRange
616
+ # @return [Structs::FibRuleUidRange]
617
+ # @see AttributeSets::FibRuleAttrs::UidRange
364
618
  def uid_range; attributes[:"uid_range"]&.value; end
365
- # Gets the value of `protocol` attribute in the message.
366
- #--
367
619
  # @rbs return: ::Integer
620
+ # @return [Integer]
621
+ # @see AttributeSets::FibRuleAttrs::Protocol
368
622
  def protocol; attributes[:"protocol"]&.value; end
369
- # Gets the value of `ip-proto` attribute in the message.
370
- #--
371
623
  # @rbs return: ::Integer
624
+ # @return [Integer]
625
+ # @see AttributeSets::FibRuleAttrs::IpProto
372
626
  def ip_proto; attributes[:"ip_proto"]&.value; end
373
- # Gets the value of `sport-range` attribute in the message.
374
- #--
375
- # @rbs return: untyped
627
+ # @rbs return: Structs::FibRulePortRange
628
+ # @return [Structs::FibRulePortRange]
629
+ # @see AttributeSets::FibRuleAttrs::SportRange
376
630
  def sport_range; attributes[:"sport_range"]&.value; end
377
- # Gets the value of `dport-range` attribute in the message.
378
- #--
379
- # @rbs return: untyped
631
+ # @rbs return: Structs::FibRulePortRange
632
+ # @return [Structs::FibRulePortRange]
633
+ # @see AttributeSets::FibRuleAttrs::DportRange
380
634
  def dport_range; attributes[:"dport_range"]&.value; end
381
- # Gets the value of `dscp` attribute in the message.
382
- #--
383
635
  # @rbs return: ::Integer
636
+ # @return [Integer]
637
+ # @see AttributeSets::FibRuleAttrs::Dscp
384
638
  def dscp; attributes[:"dscp"]&.value; end
385
- # Gets the value of `flowlabel` attribute in the message.
386
- #--
387
639
  # @rbs return: ::Integer
640
+ # @return [Integer]
641
+ # @see AttributeSets::FibRuleAttrs::Flowlabel
388
642
  def flowlabel; attributes[:"flowlabel"]&.value; end
389
- # Gets the value of `flowlabel-mask` attribute in the message.
390
- #--
391
643
  # @rbs return: ::Integer
644
+ # @return [Integer]
645
+ # @see AttributeSets::FibRuleAttrs::FlowlabelMask
392
646
  def flowlabel_mask; attributes[:"flowlabel_mask"]&.value; end
393
- # Gets the value of `sport-mask` attribute in the message.
394
- #--
395
647
  # @rbs return: ::Integer
648
+ # @return [Integer]
649
+ # @see AttributeSets::FibRuleAttrs::SportMask
396
650
  def sport_mask; attributes[:"sport_mask"]&.value; end
397
- # Gets the value of `dport-mask` attribute in the message.
398
- #--
399
651
  # @rbs return: ::Integer
652
+ # @return [Integer]
653
+ # @see AttributeSets::FibRuleAttrs::DportMask
400
654
  def dport_mask; attributes[:"dport_mask"]&.value; end
401
- # Gets the value of `dscp-mask` attribute in the message.
402
- #--
403
655
  # @rbs return: ::Integer
656
+ # @return [Integer]
657
+ # @see AttributeSets::FibRuleAttrs::DscpMask
404
658
  def dscp_mask; attributes[:"dscp_mask"]&.value; end
405
659
  end
406
660
  # Remove an existing FIB rule
407
- class DoDelruleRequest < ::Nl::Protocols::Raw::Message
661
+ class DoDelruleRequest < ::Nl::Raw::Message
408
662
  TYPE = 33
409
663
  FIXED_HEADER = Structs::FibRuleHdr
410
664
  ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
411
665
  ATTRIBUTES = Ractor.make_shareable(%i[iifname goto priority fwmark flow tun_id suppress_ifgroup suppress_prefixlen table fwmask oifname l3mdev uid_range protocol ip_proto sport_range dport_range dscp flowlabel flowlabel_mask sport_mask dport_mask dscp_mask])
412
- # Gets the value of `family` field in the message's fixed header.
413
- #--
414
666
  # @rbs return: ::Integer
667
+ # @return [Integer]
415
668
  def family; fixed_header.family; end
416
- # Gets the value of `dst-len` field in the message's fixed header.
417
- #--
418
669
  # @rbs return: ::Integer
670
+ # @return [Integer]
419
671
  def dst_len; fixed_header.dst_len; end
420
- # Gets the value of `src-len` field in the message's fixed header.
421
- #--
422
672
  # @rbs return: ::Integer
673
+ # @return [Integer]
423
674
  def src_len; fixed_header.src_len; end
424
- # Gets the value of `tos` field in the message's fixed header.
425
- #--
426
675
  # @rbs return: ::Integer
676
+ # @return [Integer]
427
677
  def tos; fixed_header.tos; end
428
- # Gets the value of `action` field in the message's fixed header.
429
- #--
430
678
  # @rbs return: ::Integer
679
+ # @return [Integer]
431
680
  def action; fixed_header.action; end
432
- # Gets the value of `flags` field in the message's fixed header.
433
- #--
434
681
  # @rbs return: ::Integer
682
+ # @return [Integer]
435
683
  def flags; fixed_header.flags; end
436
- # Gets the value of `iifname` attribute in the message.
437
- #--
438
684
  # @rbs return: ::String
685
+ # @return [String]
686
+ # @see AttributeSets::FibRuleAttrs::Iifname
439
687
  def iifname; attributes[:"iifname"]&.value; end
440
- # Gets the value of `goto` attribute in the message.
441
- #--
442
688
  # @rbs return: ::Integer
689
+ # @return [Integer]
690
+ # @see AttributeSets::FibRuleAttrs::Goto
443
691
  def goto; attributes[:"goto"]&.value; end
444
- # Gets the value of `priority` attribute in the message.
445
- #--
446
692
  # @rbs return: ::Integer
693
+ # @return [Integer]
694
+ # @see AttributeSets::FibRuleAttrs::Priority
447
695
  def priority; attributes[:"priority"]&.value; end
448
- # Gets the value of `fwmark` attribute in the message.
449
- #--
450
696
  # @rbs return: ::Integer
697
+ # @return [Integer]
698
+ # @see AttributeSets::FibRuleAttrs::Fwmark
451
699
  def fwmark; attributes[:"fwmark"]&.value; end
452
- # Gets the value of `flow` attribute in the message.
453
- #--
454
700
  # @rbs return: ::Integer
701
+ # @return [Integer]
702
+ # @see AttributeSets::FibRuleAttrs::Flow
455
703
  def flow; attributes[:"flow"]&.value; end
456
- # Gets the value of `tun-id` attribute in the message.
457
- #--
458
704
  # @rbs return: ::Integer
705
+ # @return [Integer]
706
+ # @see AttributeSets::FibRuleAttrs::TunId
459
707
  def tun_id; attributes[:"tun_id"]&.value; end
460
- # Gets the value of `suppress-ifgroup` attribute in the message.
461
- #--
462
708
  # @rbs return: ::Integer
709
+ # @return [Integer]
710
+ # @see AttributeSets::FibRuleAttrs::SuppressIfgroup
463
711
  def suppress_ifgroup; attributes[:"suppress_ifgroup"]&.value; end
464
- # Gets the value of `suppress-prefixlen` attribute in the message.
465
- #--
466
712
  # @rbs return: ::Integer
713
+ # @return [Integer]
714
+ # @see AttributeSets::FibRuleAttrs::SuppressPrefixlen
467
715
  def suppress_prefixlen; attributes[:"suppress_prefixlen"]&.value; end
468
- # Gets the value of `table` attribute or fixed header in the message.
469
- #--
470
716
  # @rbs return: ::Integer
717
+ # @return [Integer]
718
+ # @see AttributeSets::FibRuleAttrs::Table
471
719
  def table; attributes[:"table"]&.value || fixed_header.table; end
472
- # Gets the value of `fwmask` attribute in the message.
473
- #--
474
720
  # @rbs return: ::Integer
721
+ # @return [Integer]
722
+ # @see AttributeSets::FibRuleAttrs::Fwmask
475
723
  def fwmask; attributes[:"fwmask"]&.value; end
476
- # Gets the value of `oifname` attribute in the message.
477
- #--
478
724
  # @rbs return: ::String
725
+ # @return [String]
726
+ # @see AttributeSets::FibRuleAttrs::Oifname
479
727
  def oifname; attributes[:"oifname"]&.value; end
480
- # Gets the value of `l3mdev` attribute in the message.
481
- #--
482
728
  # @rbs return: ::Integer
729
+ # @return [Integer]
730
+ # @see AttributeSets::FibRuleAttrs::L3mdev
483
731
  def l3mdev; attributes[:"l3mdev"]&.value; end
484
- # Gets the value of `uid-range` attribute in the message.
485
- #--
486
- # @rbs return: untyped
732
+ # @rbs return: Structs::FibRuleUidRange
733
+ # @return [Structs::FibRuleUidRange]
734
+ # @see AttributeSets::FibRuleAttrs::UidRange
487
735
  def uid_range; attributes[:"uid_range"]&.value; end
488
- # Gets the value of `protocol` attribute in the message.
489
- #--
490
736
  # @rbs return: ::Integer
737
+ # @return [Integer]
738
+ # @see AttributeSets::FibRuleAttrs::Protocol
491
739
  def protocol; attributes[:"protocol"]&.value; end
492
- # Gets the value of `ip-proto` attribute in the message.
493
- #--
494
740
  # @rbs return: ::Integer
741
+ # @return [Integer]
742
+ # @see AttributeSets::FibRuleAttrs::IpProto
495
743
  def ip_proto; attributes[:"ip_proto"]&.value; end
496
- # Gets the value of `sport-range` attribute in the message.
497
- #--
498
- # @rbs return: untyped
744
+ # @rbs return: Structs::FibRulePortRange
745
+ # @return [Structs::FibRulePortRange]
746
+ # @see AttributeSets::FibRuleAttrs::SportRange
499
747
  def sport_range; attributes[:"sport_range"]&.value; end
500
- # Gets the value of `dport-range` attribute in the message.
501
- #--
502
- # @rbs return: untyped
748
+ # @rbs return: Structs::FibRulePortRange
749
+ # @return [Structs::FibRulePortRange]
750
+ # @see AttributeSets::FibRuleAttrs::DportRange
503
751
  def dport_range; attributes[:"dport_range"]&.value; end
504
- # Gets the value of `dscp` attribute in the message.
505
- #--
506
752
  # @rbs return: ::Integer
753
+ # @return [Integer]
754
+ # @see AttributeSets::FibRuleAttrs::Dscp
507
755
  def dscp; attributes[:"dscp"]&.value; end
508
- # Gets the value of `flowlabel` attribute in the message.
509
- #--
510
756
  # @rbs return: ::Integer
757
+ # @return [Integer]
758
+ # @see AttributeSets::FibRuleAttrs::Flowlabel
511
759
  def flowlabel; attributes[:"flowlabel"]&.value; end
512
- # Gets the value of `flowlabel-mask` attribute in the message.
513
- #--
514
760
  # @rbs return: ::Integer
761
+ # @return [Integer]
762
+ # @see AttributeSets::FibRuleAttrs::FlowlabelMask
515
763
  def flowlabel_mask; attributes[:"flowlabel_mask"]&.value; end
516
- # Gets the value of `sport-mask` attribute in the message.
517
- #--
518
764
  # @rbs return: ::Integer
765
+ # @return [Integer]
766
+ # @see AttributeSets::FibRuleAttrs::SportMask
519
767
  def sport_mask; attributes[:"sport_mask"]&.value; end
520
- # Gets the value of `dport-mask` attribute in the message.
521
- #--
522
768
  # @rbs return: ::Integer
769
+ # @return [Integer]
770
+ # @see AttributeSets::FibRuleAttrs::DportMask
523
771
  def dport_mask; attributes[:"dport_mask"]&.value; end
524
- # Gets the value of `dscp-mask` attribute in the message.
525
- #--
526
772
  # @rbs return: ::Integer
773
+ # @return [Integer]
774
+ # @see AttributeSets::FibRuleAttrs::DscpMask
527
775
  def dscp_mask; attributes[:"dscp_mask"]&.value; end
528
776
  end
529
777
  # Dump all FIB rules
530
- class DumpGetruleRequest < ::Nl::Protocols::Raw::Message
778
+ class DumpGetruleRequest < ::Nl::Raw::Message
531
779
  TYPE = 34
532
780
  FIXED_HEADER = Structs::FibRuleHdr
533
781
  ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
534
782
  ATTRIBUTES = Ractor.make_shareable(%i[])
535
- # Gets the value of `family` field in the message's fixed header.
536
- #--
537
783
  # @rbs return: ::Integer
784
+ # @return [Integer]
538
785
  def family; fixed_header.family; end
539
- # Gets the value of `dst-len` field in the message's fixed header.
540
- #--
541
786
  # @rbs return: ::Integer
787
+ # @return [Integer]
542
788
  def dst_len; fixed_header.dst_len; end
543
- # Gets the value of `src-len` field in the message's fixed header.
544
- #--
545
789
  # @rbs return: ::Integer
790
+ # @return [Integer]
546
791
  def src_len; fixed_header.src_len; end
547
- # Gets the value of `tos` field in the message's fixed header.
548
- #--
549
792
  # @rbs return: ::Integer
793
+ # @return [Integer]
550
794
  def tos; fixed_header.tos; end
551
- # Gets the value of `table` field in the message's fixed header.
552
- #--
553
795
  # @rbs return: ::Integer
796
+ # @return [Integer]
554
797
  def table; fixed_header.table; end
555
- # Gets the value of `action` field in the message's fixed header.
556
- #--
557
798
  # @rbs return: ::Integer
799
+ # @return [Integer]
558
800
  def action; fixed_header.action; end
559
- # Gets the value of `flags` field in the message's fixed header.
560
- #--
561
801
  # @rbs return: ::Integer
802
+ # @return [Integer]
562
803
  def flags; fixed_header.flags; end
563
804
  end
564
805
  # Dump all FIB rules
565
- class DumpGetruleReply < ::Nl::Protocols::Raw::Message
806
+ class DumpGetruleReply < ::Nl::Raw::Message
807
+ TYPE = 32
808
+ FIXED_HEADER = Structs::FibRuleHdr
809
+ ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
810
+ ATTRIBUTES = Ractor.make_shareable(%i[iifname goto priority fwmark flow tun_id suppress_ifgroup suppress_prefixlen table fwmask oifname l3mdev uid_range protocol ip_proto sport_range dport_range dscp flowlabel flowlabel_mask sport_mask dport_mask dscp_mask])
811
+ # @rbs return: ::Integer
812
+ # @return [Integer]
813
+ def family; fixed_header.family; end
814
+ # @rbs return: ::Integer
815
+ # @return [Integer]
816
+ def dst_len; fixed_header.dst_len; end
817
+ # @rbs return: ::Integer
818
+ # @return [Integer]
819
+ def src_len; fixed_header.src_len; end
820
+ # @rbs return: ::Integer
821
+ # @return [Integer]
822
+ def tos; fixed_header.tos; end
823
+ # @rbs return: ::Integer
824
+ # @return [Integer]
825
+ def action; fixed_header.action; end
826
+ # @rbs return: ::Integer
827
+ # @return [Integer]
828
+ def flags; fixed_header.flags; end
829
+ # @rbs return: ::String
830
+ # @return [String]
831
+ # @see AttributeSets::FibRuleAttrs::Iifname
832
+ def iifname; attributes[:"iifname"]&.value; end
833
+ # @rbs return: ::Integer
834
+ # @return [Integer]
835
+ # @see AttributeSets::FibRuleAttrs::Goto
836
+ def goto; attributes[:"goto"]&.value; end
837
+ # @rbs return: ::Integer
838
+ # @return [Integer]
839
+ # @see AttributeSets::FibRuleAttrs::Priority
840
+ def priority; attributes[:"priority"]&.value; end
841
+ # @rbs return: ::Integer
842
+ # @return [Integer]
843
+ # @see AttributeSets::FibRuleAttrs::Fwmark
844
+ def fwmark; attributes[:"fwmark"]&.value; end
845
+ # @rbs return: ::Integer
846
+ # @return [Integer]
847
+ # @see AttributeSets::FibRuleAttrs::Flow
848
+ def flow; attributes[:"flow"]&.value; end
849
+ # @rbs return: ::Integer
850
+ # @return [Integer]
851
+ # @see AttributeSets::FibRuleAttrs::TunId
852
+ def tun_id; attributes[:"tun_id"]&.value; end
853
+ # @rbs return: ::Integer
854
+ # @return [Integer]
855
+ # @see AttributeSets::FibRuleAttrs::SuppressIfgroup
856
+ def suppress_ifgroup; attributes[:"suppress_ifgroup"]&.value; end
857
+ # @rbs return: ::Integer
858
+ # @return [Integer]
859
+ # @see AttributeSets::FibRuleAttrs::SuppressPrefixlen
860
+ def suppress_prefixlen; attributes[:"suppress_prefixlen"]&.value; end
861
+ # @rbs return: ::Integer
862
+ # @return [Integer]
863
+ # @see AttributeSets::FibRuleAttrs::Table
864
+ def table; attributes[:"table"]&.value || fixed_header.table; end
865
+ # @rbs return: ::Integer
866
+ # @return [Integer]
867
+ # @see AttributeSets::FibRuleAttrs::Fwmask
868
+ def fwmask; attributes[:"fwmask"]&.value; end
869
+ # @rbs return: ::String
870
+ # @return [String]
871
+ # @see AttributeSets::FibRuleAttrs::Oifname
872
+ def oifname; attributes[:"oifname"]&.value; end
873
+ # @rbs return: ::Integer
874
+ # @return [Integer]
875
+ # @see AttributeSets::FibRuleAttrs::L3mdev
876
+ def l3mdev; attributes[:"l3mdev"]&.value; end
877
+ # @rbs return: Structs::FibRuleUidRange
878
+ # @return [Structs::FibRuleUidRange]
879
+ # @see AttributeSets::FibRuleAttrs::UidRange
880
+ def uid_range; attributes[:"uid_range"]&.value; end
881
+ # @rbs return: ::Integer
882
+ # @return [Integer]
883
+ # @see AttributeSets::FibRuleAttrs::Protocol
884
+ def protocol; attributes[:"protocol"]&.value; end
885
+ # @rbs return: ::Integer
886
+ # @return [Integer]
887
+ # @see AttributeSets::FibRuleAttrs::IpProto
888
+ def ip_proto; attributes[:"ip_proto"]&.value; end
889
+ # @rbs return: Structs::FibRulePortRange
890
+ # @return [Structs::FibRulePortRange]
891
+ # @see AttributeSets::FibRuleAttrs::SportRange
892
+ def sport_range; attributes[:"sport_range"]&.value; end
893
+ # @rbs return: Structs::FibRulePortRange
894
+ # @return [Structs::FibRulePortRange]
895
+ # @see AttributeSets::FibRuleAttrs::DportRange
896
+ def dport_range; attributes[:"dport_range"]&.value; end
897
+ # @rbs return: ::Integer
898
+ # @return [Integer]
899
+ # @see AttributeSets::FibRuleAttrs::Dscp
900
+ def dscp; attributes[:"dscp"]&.value; end
901
+ # @rbs return: ::Integer
902
+ # @return [Integer]
903
+ # @see AttributeSets::FibRuleAttrs::Flowlabel
904
+ def flowlabel; attributes[:"flowlabel"]&.value; end
905
+ # @rbs return: ::Integer
906
+ # @return [Integer]
907
+ # @see AttributeSets::FibRuleAttrs::FlowlabelMask
908
+ def flowlabel_mask; attributes[:"flowlabel_mask"]&.value; end
909
+ # @rbs return: ::Integer
910
+ # @return [Integer]
911
+ # @see AttributeSets::FibRuleAttrs::SportMask
912
+ def sport_mask; attributes[:"sport_mask"]&.value; end
913
+ # @rbs return: ::Integer
914
+ # @return [Integer]
915
+ # @see AttributeSets::FibRuleAttrs::DportMask
916
+ def dport_mask; attributes[:"dport_mask"]&.value; end
917
+ # @rbs return: ::Integer
918
+ # @return [Integer]
919
+ # @see AttributeSets::FibRuleAttrs::DscpMask
920
+ def dscp_mask; attributes[:"dscp_mask"]&.value; end
921
+ end
922
+ end
923
+ module Notifications
924
+ # Notify a rule creation
925
+ class NewruleNtf < ::Nl::Raw::Message
566
926
  TYPE = 32
567
927
  FIXED_HEADER = Structs::FibRuleHdr
568
928
  ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
569
929
  ATTRIBUTES = Ractor.make_shareable(%i[iifname goto priority fwmark flow tun_id suppress_ifgroup suppress_prefixlen table fwmask oifname l3mdev uid_range protocol ip_proto sport_range dport_range dscp flowlabel flowlabel_mask sport_mask dport_mask dscp_mask])
570
- # Gets the value of `family` field in the message's fixed header.
571
- #--
572
930
  # @rbs return: ::Integer
931
+ # @return [Integer]
573
932
  def family; fixed_header.family; end
574
- # Gets the value of `dst-len` field in the message's fixed header.
575
- #--
576
933
  # @rbs return: ::Integer
934
+ # @return [Integer]
577
935
  def dst_len; fixed_header.dst_len; end
578
- # Gets the value of `src-len` field in the message's fixed header.
579
- #--
580
936
  # @rbs return: ::Integer
937
+ # @return [Integer]
581
938
  def src_len; fixed_header.src_len; end
582
- # Gets the value of `tos` field in the message's fixed header.
583
- #--
584
939
  # @rbs return: ::Integer
940
+ # @return [Integer]
585
941
  def tos; fixed_header.tos; end
586
- # Gets the value of `action` field in the message's fixed header.
587
- #--
588
942
  # @rbs return: ::Integer
943
+ # @return [Integer]
589
944
  def action; fixed_header.action; end
590
- # Gets the value of `flags` field in the message's fixed header.
591
- #--
592
945
  # @rbs return: ::Integer
946
+ # @return [Integer]
593
947
  def flags; fixed_header.flags; end
594
- # Gets the value of `iifname` attribute in the message.
595
- #--
596
948
  # @rbs return: ::String
949
+ # @return [String]
950
+ # @see AttributeSets::FibRuleAttrs::Iifname
597
951
  def iifname; attributes[:"iifname"]&.value; end
598
- # Gets the value of `goto` attribute in the message.
599
- #--
600
952
  # @rbs return: ::Integer
953
+ # @return [Integer]
954
+ # @see AttributeSets::FibRuleAttrs::Goto
601
955
  def goto; attributes[:"goto"]&.value; end
602
- # Gets the value of `priority` attribute in the message.
603
- #--
604
956
  # @rbs return: ::Integer
957
+ # @return [Integer]
958
+ # @see AttributeSets::FibRuleAttrs::Priority
605
959
  def priority; attributes[:"priority"]&.value; end
606
- # Gets the value of `fwmark` attribute in the message.
607
- #--
608
960
  # @rbs return: ::Integer
961
+ # @return [Integer]
962
+ # @see AttributeSets::FibRuleAttrs::Fwmark
609
963
  def fwmark; attributes[:"fwmark"]&.value; end
610
- # Gets the value of `flow` attribute in the message.
611
- #--
612
964
  # @rbs return: ::Integer
965
+ # @return [Integer]
966
+ # @see AttributeSets::FibRuleAttrs::Flow
613
967
  def flow; attributes[:"flow"]&.value; end
614
- # Gets the value of `tun-id` attribute in the message.
615
- #--
616
968
  # @rbs return: ::Integer
969
+ # @return [Integer]
970
+ # @see AttributeSets::FibRuleAttrs::TunId
617
971
  def tun_id; attributes[:"tun_id"]&.value; end
618
- # Gets the value of `suppress-ifgroup` attribute in the message.
619
- #--
620
972
  # @rbs return: ::Integer
973
+ # @return [Integer]
974
+ # @see AttributeSets::FibRuleAttrs::SuppressIfgroup
621
975
  def suppress_ifgroup; attributes[:"suppress_ifgroup"]&.value; end
622
- # Gets the value of `suppress-prefixlen` attribute in the message.
623
- #--
624
976
  # @rbs return: ::Integer
977
+ # @return [Integer]
978
+ # @see AttributeSets::FibRuleAttrs::SuppressPrefixlen
625
979
  def suppress_prefixlen; attributes[:"suppress_prefixlen"]&.value; end
626
- # Gets the value of `table` attribute or fixed header in the message.
627
- #--
628
980
  # @rbs return: ::Integer
981
+ # @return [Integer]
982
+ # @see AttributeSets::FibRuleAttrs::Table
629
983
  def table; attributes[:"table"]&.value || fixed_header.table; end
630
- # Gets the value of `fwmask` attribute in the message.
631
- #--
632
984
  # @rbs return: ::Integer
985
+ # @return [Integer]
986
+ # @see AttributeSets::FibRuleAttrs::Fwmask
633
987
  def fwmask; attributes[:"fwmask"]&.value; end
634
- # Gets the value of `oifname` attribute in the message.
635
- #--
636
988
  # @rbs return: ::String
989
+ # @return [String]
990
+ # @see AttributeSets::FibRuleAttrs::Oifname
637
991
  def oifname; attributes[:"oifname"]&.value; end
638
- # Gets the value of `l3mdev` attribute in the message.
639
- #--
640
992
  # @rbs return: ::Integer
993
+ # @return [Integer]
994
+ # @see AttributeSets::FibRuleAttrs::L3mdev
641
995
  def l3mdev; attributes[:"l3mdev"]&.value; end
642
- # Gets the value of `uid-range` attribute in the message.
643
- #--
644
- # @rbs return: untyped
996
+ # @rbs return: Structs::FibRuleUidRange
997
+ # @return [Structs::FibRuleUidRange]
998
+ # @see AttributeSets::FibRuleAttrs::UidRange
645
999
  def uid_range; attributes[:"uid_range"]&.value; end
646
- # Gets the value of `protocol` attribute in the message.
647
- #--
648
1000
  # @rbs return: ::Integer
1001
+ # @return [Integer]
1002
+ # @see AttributeSets::FibRuleAttrs::Protocol
649
1003
  def protocol; attributes[:"protocol"]&.value; end
650
- # Gets the value of `ip-proto` attribute in the message.
651
- #--
652
1004
  # @rbs return: ::Integer
1005
+ # @return [Integer]
1006
+ # @see AttributeSets::FibRuleAttrs::IpProto
653
1007
  def ip_proto; attributes[:"ip_proto"]&.value; end
654
- # Gets the value of `sport-range` attribute in the message.
655
- #--
656
- # @rbs return: untyped
1008
+ # @rbs return: Structs::FibRulePortRange
1009
+ # @return [Structs::FibRulePortRange]
1010
+ # @see AttributeSets::FibRuleAttrs::SportRange
657
1011
  def sport_range; attributes[:"sport_range"]&.value; end
658
- # Gets the value of `dport-range` attribute in the message.
659
- #--
660
- # @rbs return: untyped
1012
+ # @rbs return: Structs::FibRulePortRange
1013
+ # @return [Structs::FibRulePortRange]
1014
+ # @see AttributeSets::FibRuleAttrs::DportRange
661
1015
  def dport_range; attributes[:"dport_range"]&.value; end
662
- # Gets the value of `dscp` attribute in the message.
663
- #--
664
1016
  # @rbs return: ::Integer
1017
+ # @return [Integer]
1018
+ # @see AttributeSets::FibRuleAttrs::Dscp
665
1019
  def dscp; attributes[:"dscp"]&.value; end
666
- # Gets the value of `flowlabel` attribute in the message.
667
- #--
668
1020
  # @rbs return: ::Integer
1021
+ # @return [Integer]
1022
+ # @see AttributeSets::FibRuleAttrs::Flowlabel
669
1023
  def flowlabel; attributes[:"flowlabel"]&.value; end
670
- # Gets the value of `flowlabel-mask` attribute in the message.
671
- #--
672
1024
  # @rbs return: ::Integer
1025
+ # @return [Integer]
1026
+ # @see AttributeSets::FibRuleAttrs::FlowlabelMask
673
1027
  def flowlabel_mask; attributes[:"flowlabel_mask"]&.value; end
674
- # Gets the value of `sport-mask` attribute in the message.
675
- #--
676
1028
  # @rbs return: ::Integer
1029
+ # @return [Integer]
1030
+ # @see AttributeSets::FibRuleAttrs::SportMask
677
1031
  def sport_mask; attributes[:"sport_mask"]&.value; end
678
- # Gets the value of `dport-mask` attribute in the message.
679
- #--
680
1032
  # @rbs return: ::Integer
1033
+ # @return [Integer]
1034
+ # @see AttributeSets::FibRuleAttrs::DportMask
681
1035
  def dport_mask; attributes[:"dport_mask"]&.value; end
682
- # Gets the value of `dscp-mask` attribute in the message.
683
- #--
684
1036
  # @rbs return: ::Integer
1037
+ # @return [Integer]
1038
+ # @see AttributeSets::FibRuleAttrs::DscpMask
1039
+ def dscp_mask; attributes[:"dscp_mask"]&.value; end
1040
+ end
1041
+ # Notify a rule deletion
1042
+ class DelruleNtf < ::Nl::Raw::Message
1043
+ TYPE = 33
1044
+ FIXED_HEADER = Structs::FibRuleHdr
1045
+ ATTRIBUTE_SET = AttributeSets::FibRuleAttrs
1046
+ ATTRIBUTES = Ractor.make_shareable(%i[iifname goto priority fwmark flow tun_id suppress_ifgroup suppress_prefixlen table fwmask oifname l3mdev uid_range protocol ip_proto sport_range dport_range dscp flowlabel flowlabel_mask sport_mask dport_mask dscp_mask])
1047
+ # @rbs return: ::Integer
1048
+ # @return [Integer]
1049
+ def family; fixed_header.family; end
1050
+ # @rbs return: ::Integer
1051
+ # @return [Integer]
1052
+ def dst_len; fixed_header.dst_len; end
1053
+ # @rbs return: ::Integer
1054
+ # @return [Integer]
1055
+ def src_len; fixed_header.src_len; end
1056
+ # @rbs return: ::Integer
1057
+ # @return [Integer]
1058
+ def tos; fixed_header.tos; end
1059
+ # @rbs return: ::Integer
1060
+ # @return [Integer]
1061
+ def action; fixed_header.action; end
1062
+ # @rbs return: ::Integer
1063
+ # @return [Integer]
1064
+ def flags; fixed_header.flags; end
1065
+ # @rbs return: ::String
1066
+ # @return [String]
1067
+ # @see AttributeSets::FibRuleAttrs::Iifname
1068
+ def iifname; attributes[:"iifname"]&.value; end
1069
+ # @rbs return: ::Integer
1070
+ # @return [Integer]
1071
+ # @see AttributeSets::FibRuleAttrs::Goto
1072
+ def goto; attributes[:"goto"]&.value; end
1073
+ # @rbs return: ::Integer
1074
+ # @return [Integer]
1075
+ # @see AttributeSets::FibRuleAttrs::Priority
1076
+ def priority; attributes[:"priority"]&.value; end
1077
+ # @rbs return: ::Integer
1078
+ # @return [Integer]
1079
+ # @see AttributeSets::FibRuleAttrs::Fwmark
1080
+ def fwmark; attributes[:"fwmark"]&.value; end
1081
+ # @rbs return: ::Integer
1082
+ # @return [Integer]
1083
+ # @see AttributeSets::FibRuleAttrs::Flow
1084
+ def flow; attributes[:"flow"]&.value; end
1085
+ # @rbs return: ::Integer
1086
+ # @return [Integer]
1087
+ # @see AttributeSets::FibRuleAttrs::TunId
1088
+ def tun_id; attributes[:"tun_id"]&.value; end
1089
+ # @rbs return: ::Integer
1090
+ # @return [Integer]
1091
+ # @see AttributeSets::FibRuleAttrs::SuppressIfgroup
1092
+ def suppress_ifgroup; attributes[:"suppress_ifgroup"]&.value; end
1093
+ # @rbs return: ::Integer
1094
+ # @return [Integer]
1095
+ # @see AttributeSets::FibRuleAttrs::SuppressPrefixlen
1096
+ def suppress_prefixlen; attributes[:"suppress_prefixlen"]&.value; end
1097
+ # @rbs return: ::Integer
1098
+ # @return [Integer]
1099
+ # @see AttributeSets::FibRuleAttrs::Table
1100
+ def table; attributes[:"table"]&.value || fixed_header.table; end
1101
+ # @rbs return: ::Integer
1102
+ # @return [Integer]
1103
+ # @see AttributeSets::FibRuleAttrs::Fwmask
1104
+ def fwmask; attributes[:"fwmask"]&.value; end
1105
+ # @rbs return: ::String
1106
+ # @return [String]
1107
+ # @see AttributeSets::FibRuleAttrs::Oifname
1108
+ def oifname; attributes[:"oifname"]&.value; end
1109
+ # @rbs return: ::Integer
1110
+ # @return [Integer]
1111
+ # @see AttributeSets::FibRuleAttrs::L3mdev
1112
+ def l3mdev; attributes[:"l3mdev"]&.value; end
1113
+ # @rbs return: Structs::FibRuleUidRange
1114
+ # @return [Structs::FibRuleUidRange]
1115
+ # @see AttributeSets::FibRuleAttrs::UidRange
1116
+ def uid_range; attributes[:"uid_range"]&.value; end
1117
+ # @rbs return: ::Integer
1118
+ # @return [Integer]
1119
+ # @see AttributeSets::FibRuleAttrs::Protocol
1120
+ def protocol; attributes[:"protocol"]&.value; end
1121
+ # @rbs return: ::Integer
1122
+ # @return [Integer]
1123
+ # @see AttributeSets::FibRuleAttrs::IpProto
1124
+ def ip_proto; attributes[:"ip_proto"]&.value; end
1125
+ # @rbs return: Structs::FibRulePortRange
1126
+ # @return [Structs::FibRulePortRange]
1127
+ # @see AttributeSets::FibRuleAttrs::SportRange
1128
+ def sport_range; attributes[:"sport_range"]&.value; end
1129
+ # @rbs return: Structs::FibRulePortRange
1130
+ # @return [Structs::FibRulePortRange]
1131
+ # @see AttributeSets::FibRuleAttrs::DportRange
1132
+ def dport_range; attributes[:"dport_range"]&.value; end
1133
+ # @rbs return: ::Integer
1134
+ # @return [Integer]
1135
+ # @see AttributeSets::FibRuleAttrs::Dscp
1136
+ def dscp; attributes[:"dscp"]&.value; end
1137
+ # @rbs return: ::Integer
1138
+ # @return [Integer]
1139
+ # @see AttributeSets::FibRuleAttrs::Flowlabel
1140
+ def flowlabel; attributes[:"flowlabel"]&.value; end
1141
+ # @rbs return: ::Integer
1142
+ # @return [Integer]
1143
+ # @see AttributeSets::FibRuleAttrs::FlowlabelMask
1144
+ def flowlabel_mask; attributes[:"flowlabel_mask"]&.value; end
1145
+ # @rbs return: ::Integer
1146
+ # @return [Integer]
1147
+ # @see AttributeSets::FibRuleAttrs::SportMask
1148
+ def sport_mask; attributes[:"sport_mask"]&.value; end
1149
+ # @rbs return: ::Integer
1150
+ # @return [Integer]
1151
+ # @see AttributeSets::FibRuleAttrs::DportMask
1152
+ def dport_mask; attributes[:"dport_mask"]&.value; end
1153
+ # @rbs return: ::Integer
1154
+ # @return [Integer]
1155
+ # @see AttributeSets::FibRuleAttrs::DscpMask
685
1156
  def dscp_mask; attributes[:"dscp_mask"]&.value; end
686
1157
  end
687
1158
  end
1159
+ # @private
1160
+ NOTIFICATIONS = Ractor.make_shareable({32 => Notifications::NewruleNtf, 33 => Notifications::DelruleNtf}) #: Hash[::Integer, ::Class]
688
1161
  # Add new FIB rule
689
- #--
690
- # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: untyped, ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: untyped, ?dport_range: untyped, ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> void
1162
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: (Structs::FibRuleUidRange | ::Hash[::Symbol, untyped]), ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> void
1163
+ # @param [Hash] args
1164
+ # @option args [Integer] family
1165
+ # @option args [Integer] dst_len
1166
+ # @option args [Integer] src_len
1167
+ # @option args [Integer] tos
1168
+ # @option args [Integer] table
1169
+ # @option args [Integer] action
1170
+ # @option args [Integer] flags
1171
+ # @option args [String] iifname
1172
+ # @option args [Integer] goto
1173
+ # @option args [Integer] priority
1174
+ # @option args [Integer] fwmark
1175
+ # @option args [Integer] flow
1176
+ # @option args [Integer] tun_id
1177
+ # @option args [Integer] suppress_ifgroup
1178
+ # @option args [Integer] suppress_prefixlen
1179
+ # @option args [Integer] fwmask
1180
+ # @option args [String] oifname
1181
+ # @option args [Integer] l3mdev
1182
+ # @option args [Structs::FibRuleUidRange, Hash<Symbol, Object>] uid_range
1183
+ # @option args [Integer] protocol
1184
+ # @option args [Integer] ip_proto
1185
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] sport_range
1186
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] dport_range
1187
+ # @option args [Integer] dscp
1188
+ # @option args [Integer] flowlabel
1189
+ # @option args [Integer] flowlabel_mask
1190
+ # @option args [Integer] sport_mask
1191
+ # @option args [Integer] dport_mask
1192
+ # @option args [Integer] dscp_mask
1193
+ # @return [void]
1194
+ # @see Messages::DoNewruleRequest
691
1195
  def do_newrule(**args)
692
1196
  exchange_message(:"do", Messages::DoNewruleRequest, nil, args)
693
1197
  end
694
1198
  # Remove an existing FIB rule
695
- #--
696
- # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: untyped, ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: untyped, ?dport_range: untyped, ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> void
1199
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: (Structs::FibRuleUidRange | ::Hash[::Symbol, untyped]), ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> void
1200
+ # @param [Hash] args
1201
+ # @option args [Integer] family
1202
+ # @option args [Integer] dst_len
1203
+ # @option args [Integer] src_len
1204
+ # @option args [Integer] tos
1205
+ # @option args [Integer] table
1206
+ # @option args [Integer] action
1207
+ # @option args [Integer] flags
1208
+ # @option args [String] iifname
1209
+ # @option args [Integer] goto
1210
+ # @option args [Integer] priority
1211
+ # @option args [Integer] fwmark
1212
+ # @option args [Integer] flow
1213
+ # @option args [Integer] tun_id
1214
+ # @option args [Integer] suppress_ifgroup
1215
+ # @option args [Integer] suppress_prefixlen
1216
+ # @option args [Integer] fwmask
1217
+ # @option args [String] oifname
1218
+ # @option args [Integer] l3mdev
1219
+ # @option args [Structs::FibRuleUidRange, Hash<Symbol, Object>] uid_range
1220
+ # @option args [Integer] protocol
1221
+ # @option args [Integer] ip_proto
1222
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] sport_range
1223
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] dport_range
1224
+ # @option args [Integer] dscp
1225
+ # @option args [Integer] flowlabel
1226
+ # @option args [Integer] flowlabel_mask
1227
+ # @option args [Integer] sport_mask
1228
+ # @option args [Integer] dport_mask
1229
+ # @option args [Integer] dscp_mask
1230
+ # @return [void]
1231
+ # @see Messages::DoDelruleRequest
697
1232
  def do_delrule(**args)
698
1233
  exchange_message(:"do", Messages::DoDelruleRequest, nil, args)
699
1234
  end
700
1235
  # Dump all FIB rules
701
- #--
702
- # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer) -> Enumerable[Messages::DumpGetruleReply]
1236
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer) -> Array[Messages::DumpGetruleReply]
703
1237
  # | (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer) { (Messages::DumpGetruleReply) -> void } -> void
1238
+ # @overload dump_getrule(**args)
1239
+ # Returns an array when no block is given.
1240
+ # @param [Hash] args
1241
+ # @option args [Integer] family
1242
+ # @option args [Integer] dst_len
1243
+ # @option args [Integer] src_len
1244
+ # @option args [Integer] tos
1245
+ # @option args [Integer] table
1246
+ # @option args [Integer] action
1247
+ # @option args [Integer] flags
1248
+ # @return [Array<Messages::DumpGetruleReply>]
1249
+ # @overload dump_getrule(**args, &block)
1250
+ # Yields each reply when a block is given.
1251
+ # @param [Hash] args
1252
+ # @option args [Integer] family
1253
+ # @option args [Integer] dst_len
1254
+ # @option args [Integer] src_len
1255
+ # @option args [Integer] tos
1256
+ # @option args [Integer] table
1257
+ # @option args [Integer] action
1258
+ # @option args [Integer] flags
1259
+ # @yieldparam [Messages::DumpGetruleReply] reply
1260
+ # @return [void]
1261
+ # @see Messages::DumpGetruleRequest
704
1262
  def dump_getrule(**args, &block)
705
1263
  exchange_message(:"dump", Messages::DumpGetruleRequest, Messages::DumpGetruleReply, args, &block)
706
1264
  end
1265
+ class AsyncOperations
1266
+ # @private
1267
+ def initialize(&exchange)
1268
+ @exchange = exchange
1269
+ end
1270
+ # Add new FIB rule
1271
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: (Structs::FibRuleUidRange | ::Hash[::Symbol, untyped]), ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> ::Nl::Async::Future[void]
1272
+ # @param [Hash] args
1273
+ # @option args [Integer] family
1274
+ # @option args [Integer] dst_len
1275
+ # @option args [Integer] src_len
1276
+ # @option args [Integer] tos
1277
+ # @option args [Integer] table
1278
+ # @option args [Integer] action
1279
+ # @option args [Integer] flags
1280
+ # @option args [String] iifname
1281
+ # @option args [Integer] goto
1282
+ # @option args [Integer] priority
1283
+ # @option args [Integer] fwmark
1284
+ # @option args [Integer] flow
1285
+ # @option args [Integer] tun_id
1286
+ # @option args [Integer] suppress_ifgroup
1287
+ # @option args [Integer] suppress_prefixlen
1288
+ # @option args [Integer] fwmask
1289
+ # @option args [String] oifname
1290
+ # @option args [Integer] l3mdev
1291
+ # @option args [Structs::FibRuleUidRange, Hash<Symbol, Object>] uid_range
1292
+ # @option args [Integer] protocol
1293
+ # @option args [Integer] ip_proto
1294
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] sport_range
1295
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] dport_range
1296
+ # @option args [Integer] dscp
1297
+ # @option args [Integer] flowlabel
1298
+ # @option args [Integer] flowlabel_mask
1299
+ # @option args [Integer] sport_mask
1300
+ # @option args [Integer] dport_mask
1301
+ # @option args [Integer] dscp_mask
1302
+ # @return [Nl::Async::Future<void>]
1303
+ # @see Messages::DoNewruleRequest
1304
+ def do_newrule(**args)
1305
+ @exchange.call(:"do", Messages::DoNewruleRequest, nil, args)
1306
+ end
1307
+ # Remove an existing FIB rule
1308
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer, ?iifname: ::String, ?goto: ::Integer, ?priority: ::Integer, ?fwmark: ::Integer, ?flow: ::Integer, ?tun_id: ::Integer, ?suppress_ifgroup: ::Integer, ?suppress_prefixlen: ::Integer, ?fwmask: ::Integer, ?oifname: ::String, ?l3mdev: ::Integer, ?uid_range: (Structs::FibRuleUidRange | ::Hash[::Symbol, untyped]), ?protocol: ::Integer, ?ip_proto: ::Integer, ?sport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dport_range: (Structs::FibRulePortRange | ::Hash[::Symbol, untyped]), ?dscp: ::Integer, ?flowlabel: ::Integer, ?flowlabel_mask: ::Integer, ?sport_mask: ::Integer, ?dport_mask: ::Integer, ?dscp_mask: ::Integer) -> ::Nl::Async::Future[void]
1309
+ # @param [Hash] args
1310
+ # @option args [Integer] family
1311
+ # @option args [Integer] dst_len
1312
+ # @option args [Integer] src_len
1313
+ # @option args [Integer] tos
1314
+ # @option args [Integer] table
1315
+ # @option args [Integer] action
1316
+ # @option args [Integer] flags
1317
+ # @option args [String] iifname
1318
+ # @option args [Integer] goto
1319
+ # @option args [Integer] priority
1320
+ # @option args [Integer] fwmark
1321
+ # @option args [Integer] flow
1322
+ # @option args [Integer] tun_id
1323
+ # @option args [Integer] suppress_ifgroup
1324
+ # @option args [Integer] suppress_prefixlen
1325
+ # @option args [Integer] fwmask
1326
+ # @option args [String] oifname
1327
+ # @option args [Integer] l3mdev
1328
+ # @option args [Structs::FibRuleUidRange, Hash<Symbol, Object>] uid_range
1329
+ # @option args [Integer] protocol
1330
+ # @option args [Integer] ip_proto
1331
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] sport_range
1332
+ # @option args [Structs::FibRulePortRange, Hash<Symbol, Object>] dport_range
1333
+ # @option args [Integer] dscp
1334
+ # @option args [Integer] flowlabel
1335
+ # @option args [Integer] flowlabel_mask
1336
+ # @option args [Integer] sport_mask
1337
+ # @option args [Integer] dport_mask
1338
+ # @option args [Integer] dscp_mask
1339
+ # @return [Nl::Async::Future<void>]
1340
+ # @see Messages::DoDelruleRequest
1341
+ def do_delrule(**args)
1342
+ @exchange.call(:"do", Messages::DoDelruleRequest, nil, args)
1343
+ end
1344
+ # Dump all FIB rules
1345
+ # @rbs (?family: ::Integer, ?dst_len: ::Integer, ?src_len: ::Integer, ?tos: ::Integer, ?table: ::Integer, ?action: ::Integer, ?flags: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetruleReply]
1346
+ # @param [Hash] args
1347
+ # @option args [Integer] family
1348
+ # @option args [Integer] dst_len
1349
+ # @option args [Integer] src_len
1350
+ # @option args [Integer] tos
1351
+ # @option args [Integer] table
1352
+ # @option args [Integer] action
1353
+ # @option args [Integer] flags
1354
+ # @return [Nl::Async::Stream<Messages::DumpGetruleReply>]
1355
+ # @see Messages::DumpGetruleRequest
1356
+ def dump_getrule(**args)
1357
+ @exchange.call(:"dump", Messages::DumpGetruleRequest, Messages::DumpGetruleReply, args)
1358
+ end
1359
+ end
1360
+ # Returns the asynchronous operation facade for this family.
1361
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
1362
+ # @param [::Integer, nil] stream_capacity
1363
+ # @return [AsyncOperations]
1364
+ def async(stream_capacity: nil)
1365
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
1366
+ build_async_facade(AsyncOperations, stream_capacity:)
1367
+ end
1368
+ # @rbs (*(:rtnlgrp_ipv4_rule | :rtnlgrp_ipv6_rule) groups) -> self
1369
+ # @param [Array<:rtnlgrp_ipv4_rule, :rtnlgrp_ipv6_rule>] groups
1370
+ # @return [self]
1371
+ def subscribe(*groups) = super
1372
+ # @rbs (*(:rtnlgrp_ipv4_rule | :rtnlgrp_ipv6_rule) groups) -> self
1373
+ # @param [Array<:rtnlgrp_ipv4_rule, :rtnlgrp_ipv6_rule>] groups
1374
+ # @return [self]
1375
+ def unsubscribe(*groups) = super
707
1376
  end
708
1377
  end; end