nl-linux 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1445 @@
1
+ # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #--
3
+ # frozen_string_literal: true
4
+ # rbs_inline: enabled
5
+ # This code is generated by Ynl::Generator. DO NOT EDIT.
6
+ require 'nl'
7
+ # OVS flow configuration over generic netlink.
8
+ class Nl::Linux::OvsFlow < ::Nl::Family
9
+ NAME = "ovs_flow"
10
+ PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("ovs_flow"))
11
+ module Structs
12
+ # Header for OVS Generic Netlink messages.
13
+ OvsHeader = Struct.new(
14
+ :"dp_ifindex", #: ::Integer
15
+ )
16
+ class OvsHeader
17
+ # :nodoc:
18
+ MEMBERS = Ractor.make_shareable({dp_ifindex: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
19
+ # Decodes the struct.
20
+ #--
21
+ # @rbs decoder: ::Nl::Decoder
22
+ # @rbs return: instance
23
+ def self.decode(decoder)
24
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
25
+ end
26
+ # Encodes the struct.
27
+ #--
28
+ # @rbs encoder: ::Nl::Encoder
29
+ # @rbs return: void
30
+ def encode(encoder)
31
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
32
+ end
33
+ end
34
+ OvsFlowStats = Struct.new(
35
+ :"n_packets", #: ::Integer
36
+ :"n_bytes", #: ::Integer
37
+ )
38
+ class OvsFlowStats
39
+ # :nodoc:
40
+ MEMBERS = Ractor.make_shareable({n_packets: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil), n_bytes: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
41
+ # Decodes the struct.
42
+ #--
43
+ # @rbs decoder: ::Nl::Decoder
44
+ # @rbs return: instance
45
+ def self.decode(decoder)
46
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
47
+ end
48
+ # Encodes the struct.
49
+ #--
50
+ # @rbs encoder: ::Nl::Encoder
51
+ # @rbs return: void
52
+ def encode(encoder)
53
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
54
+ end
55
+ end
56
+ OvsKeyEthernet = Struct.new(
57
+ :"eth_src", #: untyped
58
+ :"eth_dst", #: untyped
59
+ )
60
+ class OvsKeyEthernet
61
+ # :nodoc:
62
+ MEMBERS = Ractor.make_shareable({eth_src: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), eth_dst: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
63
+ # Decodes the struct.
64
+ #--
65
+ # @rbs decoder: ::Nl::Decoder
66
+ # @rbs return: instance
67
+ def self.decode(decoder)
68
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
69
+ end
70
+ # Encodes the struct.
71
+ #--
72
+ # @rbs encoder: ::Nl::Encoder
73
+ # @rbs return: void
74
+ def encode(encoder)
75
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
76
+ end
77
+ end
78
+ OvsKeyMpls = Struct.new(
79
+ :"mpls_lse", #: ::Integer
80
+ )
81
+ class OvsKeyMpls
82
+ # :nodoc:
83
+ MEMBERS = Ractor.make_shareable({mpls_lse: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
84
+ # Decodes the struct.
85
+ #--
86
+ # @rbs decoder: ::Nl::Decoder
87
+ # @rbs return: instance
88
+ def self.decode(decoder)
89
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
90
+ end
91
+ # Encodes the struct.
92
+ #--
93
+ # @rbs encoder: ::Nl::Encoder
94
+ # @rbs return: void
95
+ def encode(encoder)
96
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
97
+ end
98
+ end
99
+ OvsKeyIpv4 = Struct.new(
100
+ :"ipv4_src", #: ::Integer
101
+ :"ipv4_dst", #: ::Integer
102
+ :"ipv4_proto", #: ::Integer
103
+ :"ipv4_tos", #: ::Integer
104
+ :"ipv4_ttl", #: ::Integer
105
+ :"ipv4_frag", #: ::Integer
106
+ )
107
+ class OvsKeyIpv4
108
+ # :nodoc:
109
+ MEMBERS = Ractor.make_shareable({ipv4_src: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), ipv4_dst: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), ipv4_proto: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv4_tos: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv4_ttl: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv4_frag: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
110
+ # Decodes the struct.
111
+ #--
112
+ # @rbs decoder: ::Nl::Decoder
113
+ # @rbs return: instance
114
+ def self.decode(decoder)
115
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
116
+ end
117
+ # Encodes the struct.
118
+ #--
119
+ # @rbs encoder: ::Nl::Encoder
120
+ # @rbs return: void
121
+ def encode(encoder)
122
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
123
+ end
124
+ end
125
+ OvsKeyIpv6 = Struct.new(
126
+ :"ipv6_src", #: untyped
127
+ :"ipv6_dst", #: untyped
128
+ :"ipv6_label", #: ::Integer
129
+ :"ipv6_proto", #: ::Integer
130
+ :"ipv6_tclass", #: ::Integer
131
+ :"ipv6_hlimit", #: ::Integer
132
+ :"ipv6_frag", #: ::Integer
133
+ )
134
+ class OvsKeyIpv6
135
+ # :nodoc:
136
+ MEMBERS = Ractor.make_shareable({ipv6_src: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), ipv6_dst: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), ipv6_label: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), ipv6_proto: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv6_tclass: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv6_hlimit: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), ipv6_frag: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
137
+ # Decodes the struct.
138
+ #--
139
+ # @rbs decoder: ::Nl::Decoder
140
+ # @rbs return: instance
141
+ def self.decode(decoder)
142
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
143
+ end
144
+ # Encodes the struct.
145
+ #--
146
+ # @rbs encoder: ::Nl::Encoder
147
+ # @rbs return: void
148
+ def encode(encoder)
149
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
150
+ end
151
+ end
152
+ OvsKeyIpv6Exthdrs = Struct.new(
153
+ :"hdrs", #: ::Integer
154
+ )
155
+ class OvsKeyIpv6Exthdrs
156
+ # :nodoc:
157
+ MEMBERS = Ractor.make_shareable({hdrs: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
158
+ # Decodes the struct.
159
+ #--
160
+ # @rbs decoder: ::Nl::Decoder
161
+ # @rbs return: instance
162
+ def self.decode(decoder)
163
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
164
+ end
165
+ # Encodes the struct.
166
+ #--
167
+ # @rbs encoder: ::Nl::Encoder
168
+ # @rbs return: void
169
+ def encode(encoder)
170
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
171
+ end
172
+ end
173
+ OvsKeyTcp = Struct.new(
174
+ :"tcp_src", #: ::Integer
175
+ :"tcp_dst", #: ::Integer
176
+ )
177
+ class OvsKeyTcp
178
+ # :nodoc:
179
+ MEMBERS = Ractor.make_shareable({tcp_src: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), tcp_dst: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
180
+ # Decodes the struct.
181
+ #--
182
+ # @rbs decoder: ::Nl::Decoder
183
+ # @rbs return: instance
184
+ def self.decode(decoder)
185
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
186
+ end
187
+ # Encodes the struct.
188
+ #--
189
+ # @rbs encoder: ::Nl::Encoder
190
+ # @rbs return: void
191
+ def encode(encoder)
192
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
193
+ end
194
+ end
195
+ OvsKeyUdp = Struct.new(
196
+ :"udp_src", #: ::Integer
197
+ :"udp_dst", #: ::Integer
198
+ )
199
+ class OvsKeyUdp
200
+ # :nodoc:
201
+ MEMBERS = Ractor.make_shareable({udp_src: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), udp_dst: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
202
+ # Decodes the struct.
203
+ #--
204
+ # @rbs decoder: ::Nl::Decoder
205
+ # @rbs return: instance
206
+ def self.decode(decoder)
207
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
208
+ end
209
+ # Encodes the struct.
210
+ #--
211
+ # @rbs encoder: ::Nl::Encoder
212
+ # @rbs return: void
213
+ def encode(encoder)
214
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
215
+ end
216
+ end
217
+ OvsKeySctp = Struct.new(
218
+ :"sctp_src", #: ::Integer
219
+ :"sctp_dst", #: ::Integer
220
+ )
221
+ class OvsKeySctp
222
+ # :nodoc:
223
+ MEMBERS = Ractor.make_shareable({sctp_src: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), sctp_dst: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
224
+ # Decodes the struct.
225
+ #--
226
+ # @rbs decoder: ::Nl::Decoder
227
+ # @rbs return: instance
228
+ def self.decode(decoder)
229
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
230
+ end
231
+ # Encodes the struct.
232
+ #--
233
+ # @rbs encoder: ::Nl::Encoder
234
+ # @rbs return: void
235
+ def encode(encoder)
236
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
237
+ end
238
+ end
239
+ OvsKeyIcmp = Struct.new(
240
+ :"icmp_type", #: ::Integer
241
+ :"icmp_code", #: ::Integer
242
+ )
243
+ class OvsKeyIcmp
244
+ # :nodoc:
245
+ MEMBERS = Ractor.make_shareable({icmp_type: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil), icmp_code: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
246
+ # Decodes the struct.
247
+ #--
248
+ # @rbs decoder: ::Nl::Decoder
249
+ # @rbs return: instance
250
+ def self.decode(decoder)
251
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
252
+ end
253
+ # Encodes the struct.
254
+ #--
255
+ # @rbs encoder: ::Nl::Encoder
256
+ # @rbs return: void
257
+ def encode(encoder)
258
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
259
+ end
260
+ end
261
+ OvsKeyArp = Struct.new(
262
+ :"arp_sip", #: ::Integer
263
+ :"arp_tip", #: ::Integer
264
+ :"arp_op", #: ::Integer
265
+ :"arp_sha", #: untyped
266
+ :"arp_tha", #: untyped
267
+ )
268
+ class OvsKeyArp
269
+ # :nodoc:
270
+ MEMBERS = Ractor.make_shareable({arp_sip: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), arp_tip: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), arp_op: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), arp_sha: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), arp_tha: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
271
+ # Decodes the struct.
272
+ #--
273
+ # @rbs decoder: ::Nl::Decoder
274
+ # @rbs return: instance
275
+ def self.decode(decoder)
276
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
277
+ end
278
+ # Encodes the struct.
279
+ #--
280
+ # @rbs encoder: ::Nl::Encoder
281
+ # @rbs return: void
282
+ def encode(encoder)
283
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
284
+ end
285
+ end
286
+ OvsKeyNd = Struct.new(
287
+ :"nd_target", #: untyped
288
+ :"nd_sll", #: untyped
289
+ :"nd_tll", #: untyped
290
+ )
291
+ class OvsKeyNd
292
+ # :nodoc:
293
+ MEMBERS = Ractor.make_shareable({nd_target: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), nd_sll: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil), nd_tll: ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
294
+ # Decodes the struct.
295
+ #--
296
+ # @rbs decoder: ::Nl::Decoder
297
+ # @rbs return: instance
298
+ def self.decode(decoder)
299
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
300
+ end
301
+ # Encodes the struct.
302
+ #--
303
+ # @rbs encoder: ::Nl::Encoder
304
+ # @rbs return: void
305
+ def encode(encoder)
306
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
307
+ end
308
+ end
309
+ OvsKeyCtTupleIpv4 = Struct.new(
310
+ :"ipv4_src", #: ::Integer
311
+ :"ipv4_dst", #: ::Integer
312
+ :"src_port", #: ::Integer
313
+ :"dst_port", #: ::Integer
314
+ :"ipv4_proto", #: ::Integer
315
+ )
316
+ class OvsKeyCtTupleIpv4
317
+ # :nodoc:
318
+ MEMBERS = Ractor.make_shareable({ipv4_src: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), ipv4_dst: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), src_port: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), dst_port: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), ipv4_proto: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
319
+ # Decodes the struct.
320
+ #--
321
+ # @rbs decoder: ::Nl::Decoder
322
+ # @rbs return: instance
323
+ def self.decode(decoder)
324
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
325
+ end
326
+ # Encodes the struct.
327
+ #--
328
+ # @rbs encoder: ::Nl::Encoder
329
+ # @rbs return: void
330
+ def encode(encoder)
331
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
332
+ end
333
+ end
334
+ OvsActionPushVlan = Struct.new(
335
+ :"vlan_tpid", #: ::Integer
336
+ :"vlan_tci", #: ::Integer
337
+ )
338
+ class OvsActionPushVlan
339
+ # :nodoc:
340
+ MEMBERS = Ractor.make_shareable({vlan_tpid: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil), vlan_tci: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
341
+ # Decodes the struct.
342
+ #--
343
+ # @rbs decoder: ::Nl::Decoder
344
+ # @rbs return: instance
345
+ def self.decode(decoder)
346
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
347
+ end
348
+ # Encodes the struct.
349
+ #--
350
+ # @rbs encoder: ::Nl::Encoder
351
+ # @rbs return: void
352
+ def encode(encoder)
353
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
354
+ end
355
+ end
356
+ OvsActionHash = Struct.new(
357
+ :"hash_alg", #: ::Integer
358
+ :"hash_basis", #: ::Integer
359
+ )
360
+ class OvsActionHash
361
+ # :nodoc:
362
+ MEMBERS = Ractor.make_shareable({hash_alg: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil), hash_basis: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
363
+ # Decodes the struct.
364
+ #--
365
+ # @rbs decoder: ::Nl::Decoder
366
+ # @rbs return: instance
367
+ def self.decode(decoder)
368
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
369
+ end
370
+ # Encodes the struct.
371
+ #--
372
+ # @rbs encoder: ::Nl::Encoder
373
+ # @rbs return: void
374
+ def encode(encoder)
375
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
376
+ end
377
+ end
378
+ OvsActionPushMpls = Struct.new(
379
+ :"mpls_lse", #: ::Integer
380
+ :"mpls_ethertype", #: ::Integer
381
+ )
382
+ class OvsActionPushMpls
383
+ # :nodoc:
384
+ MEMBERS = Ractor.make_shareable({mpls_lse: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), mpls_ethertype: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
385
+ # Decodes the struct.
386
+ #--
387
+ # @rbs decoder: ::Nl::Decoder
388
+ # @rbs return: instance
389
+ def self.decode(decoder)
390
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
391
+ end
392
+ # Encodes the struct.
393
+ #--
394
+ # @rbs encoder: ::Nl::Encoder
395
+ # @rbs return: void
396
+ def encode(encoder)
397
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
398
+ end
399
+ end
400
+ OvsActionAddMpls = Struct.new(
401
+ :"mpls_lse", #: ::Integer
402
+ :"mpls_ethertype", #: ::Integer
403
+ :"tun_flags", #: ::Integer
404
+ )
405
+ class OvsActionAddMpls
406
+ # :nodoc:
407
+ MEMBERS = Ractor.make_shareable({mpls_lse: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), mpls_ethertype: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil), tun_flags: ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)}) #: Hash[::Symbol, ::Nl::_DataType]
408
+ # Decodes the struct.
409
+ #--
410
+ # @rbs decoder: ::Nl::Decoder
411
+ # @rbs return: instance
412
+ def self.decode(decoder)
413
+ self.new(*MEMBERS.map {|name, datatype| datatype.decode(decoder) })
414
+ end
415
+ # Encodes the struct.
416
+ #--
417
+ # @rbs encoder: ::Nl::Encoder
418
+ # @rbs return: void
419
+ def encode(encoder)
420
+ MEMBERS.each {|name, datatype| datatype.encode(encoder, self.public_send(name)) }
421
+ end
422
+ end
423
+ end
424
+ module AttributeSets
425
+ class FlowAttrs < ::Nl::Protocols::Genl::AttributeSet
426
+ # Abstract class
427
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
428
+ end
429
+ class Key < Attribute
430
+ TYPE = 1
431
+ NAME = :"key"
432
+ end
433
+ class Actions < Attribute
434
+ TYPE = 2
435
+ NAME = :"actions"
436
+ end
437
+ class Stats < Attribute
438
+ TYPE = 3
439
+ NAME = :"stats"
440
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
441
+ end
442
+ class TcpFlags < Attribute
443
+ TYPE = 4
444
+ NAME = :"tcp_flags"
445
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
446
+ end
447
+ class Used < Attribute
448
+ TYPE = 5
449
+ NAME = :"used"
450
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
451
+ end
452
+ class Clear < Attribute
453
+ TYPE = 6
454
+ NAME = :"clear"
455
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
456
+ end
457
+ class Mask < Attribute
458
+ TYPE = 7
459
+ NAME = :"mask"
460
+ end
461
+ class Probe < Attribute
462
+ TYPE = 8
463
+ NAME = :"probe"
464
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
465
+ end
466
+ class Ufid < Attribute
467
+ TYPE = 9
468
+ NAME = :"ufid"
469
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
470
+ end
471
+ class UfidFlags < Attribute
472
+ TYPE = 10
473
+ NAME = :"ufid_flags"
474
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
475
+ end
476
+ class Pad < Attribute
477
+ TYPE = 11
478
+ NAME = :"pad"
479
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
480
+ end
481
+ # :nodoc:
482
+ BY_NAME = Ractor.make_shareable({:"key" => Key, :"actions" => Actions, :"stats" => Stats, :"tcp_flags" => TcpFlags, :"used" => Used, :"clear" => Clear, :"mask" => Mask, :"probe" => Probe, :"ufid" => Ufid, :"ufid_flags" => UfidFlags, :"pad" => Pad}) #: Hash[::Symbol, Attribute]
483
+ # :nodoc:
484
+ BY_TYPE = Ractor.make_shareable({1 => Key, 2 => Actions, 3 => Stats, 4 => TcpFlags, 5 => Used, 6 => Clear, 7 => Mask, 8 => Probe, 9 => Ufid, 10 => UfidFlags, 11 => Pad}) #: Hash[::Integer, Attribute]
485
+ class << self
486
+ # Looks up Attribute class by name.
487
+ #--
488
+ # @rbs name: Symbol
489
+ # @rbs return: Attribute
490
+ def by_name(name); BY_NAME.fetch(name); end
491
+ # Looks up Attribute class by type value.
492
+ #--
493
+ # @rbs type: Integer
494
+ # @rbs return: Attribute
495
+ def by_type(type); BY_TYPE.fetch(type); end
496
+ end
497
+ end
498
+ class KeyAttrs < ::Nl::Protocols::Genl::AttributeSet
499
+ # Abstract class
500
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
501
+ end
502
+ class Encap < Attribute
503
+ TYPE = 1
504
+ NAME = :"encap"
505
+ end
506
+ class Priority < Attribute
507
+ TYPE = 2
508
+ NAME = :"priority"
509
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
510
+ end
511
+ class InPort < Attribute
512
+ TYPE = 3
513
+ NAME = :"in_port"
514
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
515
+ end
516
+ class Ethernet < Attribute
517
+ TYPE = 4
518
+ NAME = :"ethernet"
519
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
520
+ end
521
+ class Vlan < Attribute
522
+ TYPE = 5
523
+ NAME = :"vlan"
524
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
525
+ end
526
+ class Ethertype < Attribute
527
+ TYPE = 6
528
+ NAME = :"ethertype"
529
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
530
+ end
531
+ class Ipv4 < Attribute
532
+ TYPE = 7
533
+ NAME = :"ipv4"
534
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
535
+ end
536
+ class Ipv6 < Attribute
537
+ TYPE = 8
538
+ NAME = :"ipv6"
539
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
540
+ end
541
+ class Tcp < Attribute
542
+ TYPE = 9
543
+ NAME = :"tcp"
544
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
545
+ end
546
+ class Udp < Attribute
547
+ TYPE = 10
548
+ NAME = :"udp"
549
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
550
+ end
551
+ class Icmp < Attribute
552
+ TYPE = 11
553
+ NAME = :"icmp"
554
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
555
+ end
556
+ class Icmpv6 < Attribute
557
+ TYPE = 12
558
+ NAME = :"icmpv6"
559
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
560
+ end
561
+ class Arp < Attribute
562
+ TYPE = 13
563
+ NAME = :"arp"
564
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
565
+ end
566
+ class Nd < Attribute
567
+ TYPE = 14
568
+ NAME = :"nd"
569
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
570
+ end
571
+ class SkbMark < Attribute
572
+ TYPE = 15
573
+ NAME = :"skb_mark"
574
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
575
+ end
576
+ class Tunnel < Attribute
577
+ TYPE = 16
578
+ NAME = :"tunnel"
579
+ end
580
+ class Sctp < Attribute
581
+ TYPE = 17
582
+ NAME = :"sctp"
583
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
584
+ end
585
+ class TcpFlags < Attribute
586
+ TYPE = 18
587
+ NAME = :"tcp_flags"
588
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
589
+ end
590
+ class DpHash < Attribute
591
+ TYPE = 19
592
+ NAME = :"dp_hash"
593
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
594
+ end
595
+ class RecircId < Attribute
596
+ TYPE = 20
597
+ NAME = :"recirc_id"
598
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
599
+ end
600
+ class Mpls < Attribute
601
+ TYPE = 21
602
+ NAME = :"mpls"
603
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
604
+ end
605
+ class CtState < Attribute
606
+ TYPE = 22
607
+ NAME = :"ct_state"
608
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
609
+ end
610
+ class CtZone < Attribute
611
+ TYPE = 23
612
+ NAME = :"ct_zone"
613
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
614
+ end
615
+ class CtMark < Attribute
616
+ TYPE = 24
617
+ NAME = :"ct_mark"
618
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
619
+ end
620
+ class CtLabels < Attribute
621
+ TYPE = 25
622
+ NAME = :"ct_labels"
623
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
624
+ end
625
+ class CtOrigTupleIpv4 < Attribute
626
+ TYPE = 26
627
+ NAME = :"ct_orig_tuple_ipv4"
628
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
629
+ end
630
+ class CtOrigTupleIpv6 < Attribute
631
+ TYPE = 27
632
+ NAME = :"ct_orig_tuple_ipv6"
633
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
634
+ end
635
+ class Nsh < Attribute
636
+ TYPE = 28
637
+ NAME = :"nsh"
638
+ end
639
+ class PacketType < Attribute
640
+ TYPE = 29
641
+ NAME = :"packet_type"
642
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
643
+ end
644
+ class NdExtensions < Attribute
645
+ TYPE = 30
646
+ NAME = :"nd_extensions"
647
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
648
+ end
649
+ class TunnelInfo < Attribute
650
+ TYPE = 31
651
+ NAME = :"tunnel_info"
652
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
653
+ end
654
+ class Ipv6Exthdrs < Attribute
655
+ TYPE = 32
656
+ NAME = :"ipv6_exthdrs"
657
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
658
+ end
659
+ # :nodoc:
660
+ BY_NAME = Ractor.make_shareable({:"encap" => Encap, :"priority" => Priority, :"in_port" => InPort, :"ethernet" => Ethernet, :"vlan" => Vlan, :"ethertype" => Ethertype, :"ipv4" => Ipv4, :"ipv6" => Ipv6, :"tcp" => Tcp, :"udp" => Udp, :"icmp" => Icmp, :"icmpv6" => Icmpv6, :"arp" => Arp, :"nd" => Nd, :"skb_mark" => SkbMark, :"tunnel" => Tunnel, :"sctp" => Sctp, :"tcp_flags" => TcpFlags, :"dp_hash" => DpHash, :"recirc_id" => RecircId, :"mpls" => Mpls, :"ct_state" => CtState, :"ct_zone" => CtZone, :"ct_mark" => CtMark, :"ct_labels" => CtLabels, :"ct_orig_tuple_ipv4" => CtOrigTupleIpv4, :"ct_orig_tuple_ipv6" => CtOrigTupleIpv6, :"nsh" => Nsh, :"packet_type" => PacketType, :"nd_extensions" => NdExtensions, :"tunnel_info" => TunnelInfo, :"ipv6_exthdrs" => Ipv6Exthdrs}) #: Hash[::Symbol, Attribute]
661
+ # :nodoc:
662
+ BY_TYPE = Ractor.make_shareable({1 => Encap, 2 => Priority, 3 => InPort, 4 => Ethernet, 5 => Vlan, 6 => Ethertype, 7 => Ipv4, 8 => Ipv6, 9 => Tcp, 10 => Udp, 11 => Icmp, 12 => Icmpv6, 13 => Arp, 14 => Nd, 15 => SkbMark, 16 => Tunnel, 17 => Sctp, 18 => TcpFlags, 19 => DpHash, 20 => RecircId, 21 => Mpls, 22 => CtState, 23 => CtZone, 24 => CtMark, 25 => CtLabels, 26 => CtOrigTupleIpv4, 27 => CtOrigTupleIpv6, 28 => Nsh, 29 => PacketType, 30 => NdExtensions, 31 => TunnelInfo, 32 => Ipv6Exthdrs}) #: Hash[::Integer, Attribute]
663
+ class << self
664
+ # Looks up Attribute class by name.
665
+ #--
666
+ # @rbs name: Symbol
667
+ # @rbs return: Attribute
668
+ def by_name(name); BY_NAME.fetch(name); end
669
+ # Looks up Attribute class by type value.
670
+ #--
671
+ # @rbs type: Integer
672
+ # @rbs return: Attribute
673
+ def by_type(type); BY_TYPE.fetch(type); end
674
+ end
675
+ end
676
+ class ActionAttrs < ::Nl::Protocols::Genl::AttributeSet
677
+ # Abstract class
678
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
679
+ end
680
+ class Output < Attribute
681
+ TYPE = 1
682
+ NAME = :"output"
683
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
684
+ end
685
+ class Userspace < Attribute
686
+ TYPE = 2
687
+ NAME = :"userspace"
688
+ end
689
+ class Set < Attribute
690
+ TYPE = 3
691
+ NAME = :"set"
692
+ end
693
+ class PushVlan < Attribute
694
+ TYPE = 4
695
+ NAME = :"push_vlan"
696
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
697
+ end
698
+ class PopVlan < Attribute
699
+ TYPE = 5
700
+ NAME = :"pop_vlan"
701
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
702
+ end
703
+ class Sample < Attribute
704
+ TYPE = 6
705
+ NAME = :"sample"
706
+ end
707
+ class Recirc < Attribute
708
+ TYPE = 7
709
+ NAME = :"recirc"
710
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
711
+ end
712
+ class Hash < Attribute
713
+ TYPE = 8
714
+ NAME = :"hash"
715
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
716
+ end
717
+ class PushMpls < Attribute
718
+ TYPE = 9
719
+ NAME = :"push_mpls"
720
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
721
+ end
722
+ class PopMpls < Attribute
723
+ TYPE = 10
724
+ NAME = :"pop_mpls"
725
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
726
+ end
727
+ class SetMasked < Attribute
728
+ TYPE = 11
729
+ NAME = :"set_masked"
730
+ end
731
+ class Ct < Attribute
732
+ TYPE = 12
733
+ NAME = :"ct"
734
+ end
735
+ class Trunc < Attribute
736
+ TYPE = 13
737
+ NAME = :"trunc"
738
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
739
+ end
740
+ class PushEth < Attribute
741
+ TYPE = 14
742
+ NAME = :"push_eth"
743
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
744
+ end
745
+ class PopEth < Attribute
746
+ TYPE = 15
747
+ NAME = :"pop_eth"
748
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
749
+ end
750
+ class CtClear < Attribute
751
+ TYPE = 16
752
+ NAME = :"ct_clear"
753
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
754
+ end
755
+ class PushNsh < Attribute
756
+ TYPE = 17
757
+ NAME = :"push_nsh"
758
+ end
759
+ class PopNsh < Attribute
760
+ TYPE = 18
761
+ NAME = :"pop_nsh"
762
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
763
+ end
764
+ class Meter < Attribute
765
+ TYPE = 19
766
+ NAME = :"meter"
767
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
768
+ end
769
+ class Clone < Attribute
770
+ TYPE = 20
771
+ NAME = :"clone"
772
+ end
773
+ class CheckPktLen < Attribute
774
+ TYPE = 21
775
+ NAME = :"check_pkt_len"
776
+ end
777
+ class AddMpls < Attribute
778
+ TYPE = 22
779
+ NAME = :"add_mpls"
780
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
781
+ end
782
+ class DecTtl < Attribute
783
+ TYPE = 23
784
+ NAME = :"dec_ttl"
785
+ end
786
+ class Psample < Attribute
787
+ TYPE = 24
788
+ NAME = :"psample"
789
+ end
790
+ # :nodoc:
791
+ BY_NAME = Ractor.make_shareable({:"output" => Output, :"userspace" => Userspace, :"set" => Set, :"push_vlan" => PushVlan, :"pop_vlan" => PopVlan, :"sample" => Sample, :"recirc" => Recirc, :"hash" => Hash, :"push_mpls" => PushMpls, :"pop_mpls" => PopMpls, :"set_masked" => SetMasked, :"ct" => Ct, :"trunc" => Trunc, :"push_eth" => PushEth, :"pop_eth" => PopEth, :"ct_clear" => CtClear, :"push_nsh" => PushNsh, :"pop_nsh" => PopNsh, :"meter" => Meter, :"clone" => Clone, :"check_pkt_len" => CheckPktLen, :"add_mpls" => AddMpls, :"dec_ttl" => DecTtl, :"psample" => Psample}) #: Hash[::Symbol, Attribute]
792
+ # :nodoc:
793
+ BY_TYPE = Ractor.make_shareable({1 => Output, 2 => Userspace, 3 => Set, 4 => PushVlan, 5 => PopVlan, 6 => Sample, 7 => Recirc, 8 => Hash, 9 => PushMpls, 10 => PopMpls, 11 => SetMasked, 12 => Ct, 13 => Trunc, 14 => PushEth, 15 => PopEth, 16 => CtClear, 17 => PushNsh, 18 => PopNsh, 19 => Meter, 20 => Clone, 21 => CheckPktLen, 22 => AddMpls, 23 => DecTtl, 24 => Psample}) #: Hash[::Integer, Attribute]
794
+ class << self
795
+ # Looks up Attribute class by name.
796
+ #--
797
+ # @rbs name: Symbol
798
+ # @rbs return: Attribute
799
+ def by_name(name); BY_NAME.fetch(name); end
800
+ # Looks up Attribute class by type value.
801
+ #--
802
+ # @rbs type: Integer
803
+ # @rbs return: Attribute
804
+ def by_type(type); BY_TYPE.fetch(type); end
805
+ end
806
+ end
807
+ class TunnelKeyAttrs < ::Nl::Protocols::Genl::AttributeSet
808
+ # Abstract class
809
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
810
+ end
811
+ class Id < Attribute
812
+ TYPE = 0
813
+ NAME = :"id"
814
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U64, check: nil)
815
+ end
816
+ class Ipv4Src < Attribute
817
+ TYPE = 1
818
+ NAME = :"ipv4_src"
819
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
820
+ end
821
+ class Ipv4Dst < Attribute
822
+ TYPE = 2
823
+ NAME = :"ipv4_dst"
824
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
825
+ end
826
+ class Tos < Attribute
827
+ TYPE = 3
828
+ NAME = :"tos"
829
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
830
+ end
831
+ class Ttl < Attribute
832
+ TYPE = 4
833
+ NAME = :"ttl"
834
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
835
+ end
836
+ class DontFragment < Attribute
837
+ TYPE = 5
838
+ NAME = :"dont_fragment"
839
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
840
+ end
841
+ class Csum < Attribute
842
+ TYPE = 6
843
+ NAME = :"csum"
844
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
845
+ end
846
+ class Oam < Attribute
847
+ TYPE = 7
848
+ NAME = :"oam"
849
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
850
+ end
851
+ class GeneveOpts < Attribute
852
+ TYPE = 8
853
+ NAME = :"geneve_opts"
854
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
855
+ end
856
+ class TpSrc < Attribute
857
+ TYPE = 9
858
+ NAME = :"tp_src"
859
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
860
+ end
861
+ class TpDst < Attribute
862
+ TYPE = 10
863
+ NAME = :"tp_dst"
864
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Big::U16, check: nil)
865
+ end
866
+ class VxlanOpts < Attribute
867
+ TYPE = 11
868
+ NAME = :"vxlan_opts"
869
+ end
870
+ class Ipv6Src < Attribute
871
+ TYPE = 12
872
+ NAME = :"ipv6_src"
873
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
874
+ end
875
+ class Ipv6Dst < Attribute
876
+ TYPE = 13
877
+ NAME = :"ipv6_dst"
878
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
879
+ end
880
+ class Pad < Attribute
881
+ TYPE = 14
882
+ NAME = :"pad"
883
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
884
+ end
885
+ class ErspanOpts < Attribute
886
+ TYPE = 15
887
+ NAME = :"erspan_opts"
888
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
889
+ end
890
+ class Ipv4InfoBridge < Attribute
891
+ TYPE = 16
892
+ NAME = :"ipv4_info_bridge"
893
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
894
+ end
895
+ # :nodoc:
896
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"ipv4_src" => Ipv4Src, :"ipv4_dst" => Ipv4Dst, :"tos" => Tos, :"ttl" => Ttl, :"dont_fragment" => DontFragment, :"csum" => Csum, :"oam" => Oam, :"geneve_opts" => GeneveOpts, :"tp_src" => TpSrc, :"tp_dst" => TpDst, :"vxlan_opts" => VxlanOpts, :"ipv6_src" => Ipv6Src, :"ipv6_dst" => Ipv6Dst, :"pad" => Pad, :"erspan_opts" => ErspanOpts, :"ipv4_info_bridge" => Ipv4InfoBridge}) #: Hash[::Symbol, Attribute]
897
+ # :nodoc:
898
+ BY_TYPE = Ractor.make_shareable({0 => Id, 1 => Ipv4Src, 2 => Ipv4Dst, 3 => Tos, 4 => Ttl, 5 => DontFragment, 6 => Csum, 7 => Oam, 8 => GeneveOpts, 9 => TpSrc, 10 => TpDst, 11 => VxlanOpts, 12 => Ipv6Src, 13 => Ipv6Dst, 14 => Pad, 15 => ErspanOpts, 16 => Ipv4InfoBridge}) #: Hash[::Integer, Attribute]
899
+ class << self
900
+ # Looks up Attribute class by name.
901
+ #--
902
+ # @rbs name: Symbol
903
+ # @rbs return: Attribute
904
+ def by_name(name); BY_NAME.fetch(name); end
905
+ # Looks up Attribute class by type value.
906
+ #--
907
+ # @rbs type: Integer
908
+ # @rbs return: Attribute
909
+ def by_type(type); BY_TYPE.fetch(type); end
910
+ end
911
+ end
912
+ class CheckPktLenAttrs < ::Nl::Protocols::Genl::AttributeSet
913
+ # Abstract class
914
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
915
+ end
916
+ class PktLen < Attribute
917
+ TYPE = 1
918
+ NAME = :"pkt_len"
919
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
920
+ end
921
+ class ActionsIfGreater < Attribute
922
+ TYPE = 2
923
+ NAME = :"actions_if_greater"
924
+ end
925
+ class ActionsIfLessEqual < Attribute
926
+ TYPE = 3
927
+ NAME = :"actions_if_less_equal"
928
+ end
929
+ # :nodoc:
930
+ BY_NAME = Ractor.make_shareable({:"pkt_len" => PktLen, :"actions_if_greater" => ActionsIfGreater, :"actions_if_less_equal" => ActionsIfLessEqual}) #: Hash[::Symbol, Attribute]
931
+ # :nodoc:
932
+ BY_TYPE = Ractor.make_shareable({1 => PktLen, 2 => ActionsIfGreater, 3 => ActionsIfLessEqual}) #: Hash[::Integer, Attribute]
933
+ class << self
934
+ # Looks up Attribute class by name.
935
+ #--
936
+ # @rbs name: Symbol
937
+ # @rbs return: Attribute
938
+ def by_name(name); BY_NAME.fetch(name); end
939
+ # Looks up Attribute class by type value.
940
+ #--
941
+ # @rbs type: Integer
942
+ # @rbs return: Attribute
943
+ def by_type(type); BY_TYPE.fetch(type); end
944
+ end
945
+ end
946
+ class SampleAttrs < ::Nl::Protocols::Genl::AttributeSet
947
+ # Abstract class
948
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
949
+ end
950
+ class Probability < Attribute
951
+ TYPE = 1
952
+ NAME = :"probability"
953
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
954
+ end
955
+ class Actions < Attribute
956
+ TYPE = 2
957
+ NAME = :"actions"
958
+ end
959
+ # :nodoc:
960
+ BY_NAME = Ractor.make_shareable({:"probability" => Probability, :"actions" => Actions}) #: Hash[::Symbol, Attribute]
961
+ # :nodoc:
962
+ BY_TYPE = Ractor.make_shareable({1 => Probability, 2 => Actions}) #: Hash[::Integer, Attribute]
963
+ class << self
964
+ # Looks up Attribute class by name.
965
+ #--
966
+ # @rbs name: Symbol
967
+ # @rbs return: Attribute
968
+ def by_name(name); BY_NAME.fetch(name); end
969
+ # Looks up Attribute class by type value.
970
+ #--
971
+ # @rbs type: Integer
972
+ # @rbs return: Attribute
973
+ def by_type(type); BY_TYPE.fetch(type); end
974
+ end
975
+ end
976
+ class UserspaceAttrs < ::Nl::Protocols::Genl::AttributeSet
977
+ # Abstract class
978
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
979
+ end
980
+ class Pid < Attribute
981
+ TYPE = 1
982
+ NAME = :"pid"
983
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
984
+ end
985
+ class Userdata < Attribute
986
+ TYPE = 2
987
+ NAME = :"userdata"
988
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
989
+ end
990
+ class EgressTunPort < Attribute
991
+ TYPE = 3
992
+ NAME = :"egress_tun_port"
993
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
994
+ end
995
+ class Actions < Attribute
996
+ TYPE = 4
997
+ NAME = :"actions"
998
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
999
+ end
1000
+ # :nodoc:
1001
+ BY_NAME = Ractor.make_shareable({:"pid" => Pid, :"userdata" => Userdata, :"egress_tun_port" => EgressTunPort, :"actions" => Actions}) #: Hash[::Symbol, Attribute]
1002
+ # :nodoc:
1003
+ BY_TYPE = Ractor.make_shareable({1 => Pid, 2 => Userdata, 3 => EgressTunPort, 4 => Actions}) #: Hash[::Integer, Attribute]
1004
+ class << self
1005
+ # Looks up Attribute class by name.
1006
+ #--
1007
+ # @rbs name: Symbol
1008
+ # @rbs return: Attribute
1009
+ def by_name(name); BY_NAME.fetch(name); end
1010
+ # Looks up Attribute class by type value.
1011
+ #--
1012
+ # @rbs type: Integer
1013
+ # @rbs return: Attribute
1014
+ def by_type(type); BY_TYPE.fetch(type); end
1015
+ end
1016
+ end
1017
+ class OvsNshKeyAttrs < ::Nl::Protocols::Genl::AttributeSet
1018
+ # Abstract class
1019
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1020
+ end
1021
+ class Base < Attribute
1022
+ TYPE = 1
1023
+ NAME = :"base"
1024
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1025
+ end
1026
+ class Md1 < Attribute
1027
+ TYPE = 2
1028
+ NAME = :"md1"
1029
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1030
+ end
1031
+ class Md2 < Attribute
1032
+ TYPE = 3
1033
+ NAME = :"md2"
1034
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1035
+ end
1036
+ # :nodoc:
1037
+ BY_NAME = Ractor.make_shareable({:"base" => Base, :"md1" => Md1, :"md2" => Md2}) #: Hash[::Symbol, Attribute]
1038
+ # :nodoc:
1039
+ BY_TYPE = Ractor.make_shareable({1 => Base, 2 => Md1, 3 => Md2}) #: Hash[::Integer, Attribute]
1040
+ class << self
1041
+ # Looks up Attribute class by name.
1042
+ #--
1043
+ # @rbs name: Symbol
1044
+ # @rbs return: Attribute
1045
+ def by_name(name); BY_NAME.fetch(name); end
1046
+ # Looks up Attribute class by type value.
1047
+ #--
1048
+ # @rbs type: Integer
1049
+ # @rbs return: Attribute
1050
+ def by_type(type); BY_TYPE.fetch(type); end
1051
+ end
1052
+ end
1053
+ class CtAttrs < ::Nl::Protocols::Genl::AttributeSet
1054
+ # Abstract class
1055
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1056
+ end
1057
+ class Commit < Attribute
1058
+ TYPE = 1
1059
+ NAME = :"commit"
1060
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1061
+ end
1062
+ class Zone < Attribute
1063
+ TYPE = 2
1064
+ NAME = :"zone"
1065
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
1066
+ end
1067
+ class Mark < Attribute
1068
+ TYPE = 3
1069
+ NAME = :"mark"
1070
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1071
+ end
1072
+ class Labels < Attribute
1073
+ TYPE = 4
1074
+ NAME = :"labels"
1075
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1076
+ end
1077
+ class Helper < Attribute
1078
+ TYPE = 5
1079
+ NAME = :"helper"
1080
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
1081
+ end
1082
+ class Nat < Attribute
1083
+ TYPE = 6
1084
+ NAME = :"nat"
1085
+ end
1086
+ class ForceCommit < Attribute
1087
+ TYPE = 7
1088
+ NAME = :"force_commit"
1089
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1090
+ end
1091
+ class Eventmask < Attribute
1092
+ TYPE = 8
1093
+ NAME = :"eventmask"
1094
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1095
+ end
1096
+ class Timeout < Attribute
1097
+ TYPE = 9
1098
+ NAME = :"timeout"
1099
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
1100
+ end
1101
+ # :nodoc:
1102
+ BY_NAME = Ractor.make_shareable({:"commit" => Commit, :"zone" => Zone, :"mark" => Mark, :"labels" => Labels, :"helper" => Helper, :"nat" => Nat, :"force_commit" => ForceCommit, :"eventmask" => Eventmask, :"timeout" => Timeout}) #: Hash[::Symbol, Attribute]
1103
+ # :nodoc:
1104
+ BY_TYPE = Ractor.make_shareable({1 => Commit, 2 => Zone, 3 => Mark, 4 => Labels, 5 => Helper, 6 => Nat, 7 => ForceCommit, 8 => Eventmask, 9 => Timeout}) #: Hash[::Integer, Attribute]
1105
+ class << self
1106
+ # Looks up Attribute class by name.
1107
+ #--
1108
+ # @rbs name: Symbol
1109
+ # @rbs return: Attribute
1110
+ def by_name(name); BY_NAME.fetch(name); end
1111
+ # Looks up Attribute class by type value.
1112
+ #--
1113
+ # @rbs type: Integer
1114
+ # @rbs return: Attribute
1115
+ def by_type(type); BY_TYPE.fetch(type); end
1116
+ end
1117
+ end
1118
+ class NatAttrs < ::Nl::Protocols::Genl::AttributeSet
1119
+ # Abstract class
1120
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1121
+ end
1122
+ class Src < Attribute
1123
+ TYPE = 1
1124
+ NAME = :"src"
1125
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1126
+ end
1127
+ class Dst < Attribute
1128
+ TYPE = 2
1129
+ NAME = :"dst"
1130
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1131
+ end
1132
+ class IpMin < Attribute
1133
+ TYPE = 3
1134
+ NAME = :"ip_min"
1135
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1136
+ end
1137
+ class IpMax < Attribute
1138
+ TYPE = 4
1139
+ NAME = :"ip_max"
1140
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1141
+ end
1142
+ class ProtoMin < Attribute
1143
+ TYPE = 5
1144
+ NAME = :"proto_min"
1145
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
1146
+ end
1147
+ class ProtoMax < Attribute
1148
+ TYPE = 6
1149
+ NAME = :"proto_max"
1150
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
1151
+ end
1152
+ class Persistent < Attribute
1153
+ TYPE = 7
1154
+ NAME = :"persistent"
1155
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1156
+ end
1157
+ class ProtoHash < Attribute
1158
+ TYPE = 8
1159
+ NAME = :"proto_hash"
1160
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1161
+ end
1162
+ class ProtoRandom < Attribute
1163
+ TYPE = 9
1164
+ NAME = :"proto_random"
1165
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Flag.new
1166
+ end
1167
+ # :nodoc:
1168
+ BY_NAME = Ractor.make_shareable({:"src" => Src, :"dst" => Dst, :"ip_min" => IpMin, :"ip_max" => IpMax, :"proto_min" => ProtoMin, :"proto_max" => ProtoMax, :"persistent" => Persistent, :"proto_hash" => ProtoHash, :"proto_random" => ProtoRandom}) #: Hash[::Symbol, Attribute]
1169
+ # :nodoc:
1170
+ BY_TYPE = Ractor.make_shareable({1 => Src, 2 => Dst, 3 => IpMin, 4 => IpMax, 5 => ProtoMin, 6 => ProtoMax, 7 => Persistent, 8 => ProtoHash, 9 => ProtoRandom}) #: Hash[::Integer, Attribute]
1171
+ class << self
1172
+ # Looks up Attribute class by name.
1173
+ #--
1174
+ # @rbs name: Symbol
1175
+ # @rbs return: Attribute
1176
+ def by_name(name); BY_NAME.fetch(name); end
1177
+ # Looks up Attribute class by type value.
1178
+ #--
1179
+ # @rbs type: Integer
1180
+ # @rbs return: Attribute
1181
+ def by_type(type); BY_TYPE.fetch(type); end
1182
+ end
1183
+ end
1184
+ class DecTtlAttrs < ::Nl::Protocols::Genl::AttributeSet
1185
+ # Abstract class
1186
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1187
+ end
1188
+ class Action < Attribute
1189
+ TYPE = 1
1190
+ NAME = :"action"
1191
+ end
1192
+ # :nodoc:
1193
+ BY_NAME = Ractor.make_shareable({:"action" => Action}) #: Hash[::Symbol, Attribute]
1194
+ # :nodoc:
1195
+ BY_TYPE = Ractor.make_shareable({1 => Action}) #: Hash[::Integer, Attribute]
1196
+ class << self
1197
+ # Looks up Attribute class by name.
1198
+ #--
1199
+ # @rbs name: Symbol
1200
+ # @rbs return: Attribute
1201
+ def by_name(name); BY_NAME.fetch(name); end
1202
+ # Looks up Attribute class by type value.
1203
+ #--
1204
+ # @rbs type: Integer
1205
+ # @rbs return: Attribute
1206
+ def by_type(type); BY_TYPE.fetch(type); end
1207
+ end
1208
+ end
1209
+ class VxlanExtAttrs < ::Nl::Protocols::Genl::AttributeSet
1210
+ # Abstract class
1211
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1212
+ end
1213
+ class Gbp < Attribute
1214
+ TYPE = 1
1215
+ NAME = :"gbp"
1216
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1217
+ end
1218
+ # :nodoc:
1219
+ BY_NAME = Ractor.make_shareable({:"gbp" => Gbp}) #: Hash[::Symbol, Attribute]
1220
+ # :nodoc:
1221
+ BY_TYPE = Ractor.make_shareable({1 => Gbp}) #: Hash[::Integer, Attribute]
1222
+ class << self
1223
+ # Looks up Attribute class by name.
1224
+ #--
1225
+ # @rbs name: Symbol
1226
+ # @rbs return: Attribute
1227
+ def by_name(name); BY_NAME.fetch(name); end
1228
+ # Looks up Attribute class by type value.
1229
+ #--
1230
+ # @rbs type: Integer
1231
+ # @rbs return: Attribute
1232
+ def by_type(type); BY_TYPE.fetch(type); end
1233
+ end
1234
+ end
1235
+ class PsampleAttrs < ::Nl::Protocols::Genl::AttributeSet
1236
+ # Abstract class
1237
+ class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
1238
+ end
1239
+ class Group < Attribute
1240
+ TYPE = 1
1241
+ NAME = :"group"
1242
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1243
+ end
1244
+ class Cookie < Attribute
1245
+ TYPE = 2
1246
+ NAME = :"cookie"
1247
+ DATATYPE = ::Nl::Protocols::Genl::DataTypes::Binary.new(check: nil)
1248
+ end
1249
+ # :nodoc:
1250
+ BY_NAME = Ractor.make_shareable({:"group" => Group, :"cookie" => Cookie}) #: Hash[::Symbol, Attribute]
1251
+ # :nodoc:
1252
+ BY_TYPE = Ractor.make_shareable({1 => Group, 2 => Cookie}) #: Hash[::Integer, Attribute]
1253
+ class << self
1254
+ # Looks up Attribute class by name.
1255
+ #--
1256
+ # @rbs name: Symbol
1257
+ # @rbs return: Attribute
1258
+ def by_name(name); BY_NAME.fetch(name); end
1259
+ # Looks up Attribute class by type value.
1260
+ #--
1261
+ # @rbs type: Integer
1262
+ # @rbs return: Attribute
1263
+ def by_type(type); BY_TYPE.fetch(type); end
1264
+ end
1265
+ end
1266
+ FlowAttrs::Key::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(KeyAttrs)
1267
+ FlowAttrs::Actions::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1268
+ FlowAttrs::Mask::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(KeyAttrs)
1269
+ KeyAttrs::Encap::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(KeyAttrs)
1270
+ KeyAttrs::Tunnel::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(TunnelKeyAttrs)
1271
+ KeyAttrs::Nsh::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(OvsNshKeyAttrs)
1272
+ ActionAttrs::Userspace::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(UserspaceAttrs)
1273
+ ActionAttrs::Set::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(KeyAttrs)
1274
+ ActionAttrs::Sample::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(SampleAttrs)
1275
+ ActionAttrs::SetMasked::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(KeyAttrs)
1276
+ ActionAttrs::Ct::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(CtAttrs)
1277
+ ActionAttrs::PushNsh::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(OvsNshKeyAttrs)
1278
+ ActionAttrs::Clone::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1279
+ ActionAttrs::CheckPktLen::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(CheckPktLenAttrs)
1280
+ ActionAttrs::DecTtl::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(DecTtlAttrs)
1281
+ ActionAttrs::Psample::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(PsampleAttrs)
1282
+ TunnelKeyAttrs::VxlanOpts::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(VxlanExtAttrs)
1283
+ CheckPktLenAttrs::ActionsIfGreater::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1284
+ CheckPktLenAttrs::ActionsIfLessEqual::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1285
+ SampleAttrs::Actions::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1286
+ CtAttrs::Nat::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(NatAttrs)
1287
+ DecTtlAttrs::Action::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(ActionAttrs)
1288
+ end
1289
+ module Messages
1290
+ # Get / dump OVS flow configuration and state
1291
+ class DoGetRequest < ::Nl::Protocols::Genl::Message
1292
+ TYPE = 3
1293
+ FIXED_HEADER = Structs::OvsHeader
1294
+ ATTRIBUTE_SET = AttributeSets::FlowAttrs
1295
+ ATTRIBUTES = Ractor.make_shareable(%i[key ufid ufid_flags])
1296
+ # Gets the value of `dp-ifindex` field in the message's fixed header.
1297
+ #--
1298
+ # @rbs return: ::Integer
1299
+ def dp_ifindex; fixed_header.dp_ifindex; end
1300
+ # Gets the value of `key` attribute in the message.
1301
+ #--
1302
+ # @rbs return: AttributeSets::KeyAttrs
1303
+ def key; attributes[:"key"]&.value; end
1304
+ # Gets the value of `ufid` attribute in the message.
1305
+ #--
1306
+ # @rbs return: untyped
1307
+ def ufid; attributes[:"ufid"]&.value; end
1308
+ # Gets the value of `ufid-flags` attribute in the message.
1309
+ #--
1310
+ # @rbs return: ::Integer
1311
+ def ufid_flags; attributes[:"ufid_flags"]&.value; end
1312
+ end
1313
+ # Get / dump OVS flow configuration and state
1314
+ class DoGetReply < ::Nl::Protocols::Genl::Message
1315
+ TYPE = 3
1316
+ FIXED_HEADER = Structs::OvsHeader
1317
+ ATTRIBUTE_SET = AttributeSets::FlowAttrs
1318
+ ATTRIBUTES = Ractor.make_shareable(%i[key actions stats mask ufid])
1319
+ # Gets the value of `dp-ifindex` field in the message's fixed header.
1320
+ #--
1321
+ # @rbs return: ::Integer
1322
+ def dp_ifindex; fixed_header.dp_ifindex; end
1323
+ # Gets the value of `key` attribute in the message.
1324
+ #--
1325
+ # @rbs return: AttributeSets::KeyAttrs
1326
+ def key; attributes[:"key"]&.value; end
1327
+ # Gets the value of `actions` attribute in the message.
1328
+ #--
1329
+ # @rbs return: AttributeSets::ActionAttrs
1330
+ def actions; attributes[:"actions"]&.value; end
1331
+ # Gets the value of `stats` attribute in the message.
1332
+ #--
1333
+ # @rbs return: untyped
1334
+ def stats; attributes[:"stats"]&.value; end
1335
+ # Gets the value of `mask` attribute in the message.
1336
+ #--
1337
+ # @rbs return: AttributeSets::KeyAttrs
1338
+ def mask; attributes[:"mask"]&.value; end
1339
+ # Gets the value of `ufid` attribute in the message.
1340
+ #--
1341
+ # @rbs return: untyped
1342
+ def ufid; attributes[:"ufid"]&.value; end
1343
+ end
1344
+ # Get / dump OVS flow configuration and state
1345
+ class DumpGetRequest < ::Nl::Protocols::Genl::Message
1346
+ TYPE = 3
1347
+ FIXED_HEADER = Structs::OvsHeader
1348
+ ATTRIBUTE_SET = AttributeSets::FlowAttrs
1349
+ ATTRIBUTES = Ractor.make_shareable(%i[key ufid ufid_flags])
1350
+ # Gets the value of `dp-ifindex` field in the message's fixed header.
1351
+ #--
1352
+ # @rbs return: ::Integer
1353
+ def dp_ifindex; fixed_header.dp_ifindex; end
1354
+ # Gets the value of `key` attribute in the message.
1355
+ #--
1356
+ # @rbs return: AttributeSets::KeyAttrs
1357
+ def key; attributes[:"key"]&.value; end
1358
+ # Gets the value of `ufid` attribute in the message.
1359
+ #--
1360
+ # @rbs return: untyped
1361
+ def ufid; attributes[:"ufid"]&.value; end
1362
+ # Gets the value of `ufid-flags` attribute in the message.
1363
+ #--
1364
+ # @rbs return: ::Integer
1365
+ def ufid_flags; attributes[:"ufid_flags"]&.value; end
1366
+ end
1367
+ # Get / dump OVS flow configuration and state
1368
+ class DumpGetReply < ::Nl::Protocols::Genl::Message
1369
+ TYPE = 3
1370
+ FIXED_HEADER = Structs::OvsHeader
1371
+ ATTRIBUTE_SET = AttributeSets::FlowAttrs
1372
+ ATTRIBUTES = Ractor.make_shareable(%i[key actions stats mask ufid])
1373
+ # Gets the value of `dp-ifindex` field in the message's fixed header.
1374
+ #--
1375
+ # @rbs return: ::Integer
1376
+ def dp_ifindex; fixed_header.dp_ifindex; end
1377
+ # Gets the value of `key` attribute in the message.
1378
+ #--
1379
+ # @rbs return: AttributeSets::KeyAttrs
1380
+ def key; attributes[:"key"]&.value; end
1381
+ # Gets the value of `actions` attribute in the message.
1382
+ #--
1383
+ # @rbs return: AttributeSets::ActionAttrs
1384
+ def actions; attributes[:"actions"]&.value; end
1385
+ # Gets the value of `stats` attribute in the message.
1386
+ #--
1387
+ # @rbs return: untyped
1388
+ def stats; attributes[:"stats"]&.value; end
1389
+ # Gets the value of `mask` attribute in the message.
1390
+ #--
1391
+ # @rbs return: AttributeSets::KeyAttrs
1392
+ def mask; attributes[:"mask"]&.value; end
1393
+ # Gets the value of `ufid` attribute in the message.
1394
+ #--
1395
+ # @rbs return: untyped
1396
+ def ufid; attributes[:"ufid"]&.value; end
1397
+ end
1398
+ # Create OVS flow configuration in a data path
1399
+ class DoNewRequest < ::Nl::Protocols::Genl::Message
1400
+ TYPE = 1
1401
+ FIXED_HEADER = Structs::OvsHeader
1402
+ ATTRIBUTE_SET = AttributeSets::FlowAttrs
1403
+ ATTRIBUTES = Ractor.make_shareable(%i[key actions mask ufid])
1404
+ # Gets the value of `dp-ifindex` field in the message's fixed header.
1405
+ #--
1406
+ # @rbs return: ::Integer
1407
+ def dp_ifindex; fixed_header.dp_ifindex; end
1408
+ # Gets the value of `key` attribute in the message.
1409
+ #--
1410
+ # @rbs return: AttributeSets::KeyAttrs
1411
+ def key; attributes[:"key"]&.value; end
1412
+ # Gets the value of `actions` attribute in the message.
1413
+ #--
1414
+ # @rbs return: AttributeSets::ActionAttrs
1415
+ def actions; attributes[:"actions"]&.value; end
1416
+ # Gets the value of `mask` attribute in the message.
1417
+ #--
1418
+ # @rbs return: AttributeSets::KeyAttrs
1419
+ def mask; attributes[:"mask"]&.value; end
1420
+ # Gets the value of `ufid` attribute in the message.
1421
+ #--
1422
+ # @rbs return: untyped
1423
+ def ufid; attributes[:"ufid"]&.value; end
1424
+ end
1425
+ end
1426
+ # Get / dump OVS flow configuration and state
1427
+ #--
1428
+ # @rbs (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs, ?ufid: untyped, ?ufid_flags: ::Integer) -> Messages::DoGetReply
1429
+ def do_get(**args)
1430
+ exchange_message(:"do", Messages::DoGetRequest, Messages::DoGetReply, args)
1431
+ end
1432
+ # Get / dump OVS flow configuration and state
1433
+ #--
1434
+ # @rbs (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs, ?ufid: untyped, ?ufid_flags: ::Integer) -> Enumerable[Messages::DumpGetReply]
1435
+ # | (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs, ?ufid: untyped, ?ufid_flags: ::Integer) { (Messages::DumpGetReply) -> void } -> void
1436
+ def dump_get(**args, &block)
1437
+ exchange_message(:"dump", Messages::DumpGetRequest, Messages::DumpGetReply, args, &block)
1438
+ end
1439
+ # Create OVS flow configuration in a data path
1440
+ #--
1441
+ # @rbs (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs, ?actions: AttributeSets::ActionAttrs, ?mask: AttributeSets::KeyAttrs, ?ufid: untyped) -> void
1442
+ def do_new(**args)
1443
+ exchange_message(:"do", Messages::DoNewRequest, nil, args)
1444
+ end
1445
+ end