nl-linux 0.2.0 → 0.2.2

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