nl-linux 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +5 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Rakefile +14 -2
  5. data/generated/nl/linux/binder.rb +172 -44
  6. data/generated/nl/linux/conntrack.rb +1293 -370
  7. data/generated/nl/linux/dev_energymodel.rb +278 -93
  8. data/generated/nl/linux/devlink.rb +5654 -1954
  9. data/generated/nl/linux/dpll.rb +1838 -669
  10. data/generated/nl/linux/drm_ras.rb +234 -72
  11. data/generated/nl/linux/ethtool.rb +6683 -2885
  12. data/generated/nl/linux/fou.rb +308 -129
  13. data/generated/nl/linux/handshake.rb +277 -99
  14. data/generated/nl/linux/lockd.rb +88 -33
  15. data/generated/nl/linux/mptcp_pm.rb +639 -186
  16. data/generated/nl/linux/net_shaper.rb +782 -224
  17. data/generated/nl/linux/netdev.rb +2105 -631
  18. data/generated/nl/linux/nfsd.rb +1030 -358
  19. data/generated/nl/linux/nftables.rb +5041 -1612
  20. data/generated/nl/linux/nl80211.rb +4531 -871
  21. data/generated/nl/linux/nlctrl.rb +411 -119
  22. data/generated/nl/linux/ovpn.rb +1211 -293
  23. data/generated/nl/linux/ovs_datapath.rb +271 -106
  24. data/generated/nl/linux/ovs_flow.rb +1819 -354
  25. data/generated/nl/linux/ovs_packet.rb +257 -82
  26. data/generated/nl/linux/ovs_vport.rb +334 -132
  27. data/generated/nl/linux/psp.rb +916 -281
  28. data/generated/nl/linux/rt_addr.rb +369 -166
  29. data/generated/nl/linux/rt_link.rb +6708 -1450
  30. data/generated/nl/linux/rt_neigh.rb +919 -364
  31. data/generated/nl/linux/rt_route.rb +1034 -448
  32. data/generated/nl/linux/rt_rule.rb +775 -395
  33. data/generated/nl/linux/sunrpc_cache.rb +297 -102
  34. data/generated/nl/linux/tc.rb +9989 -1780
  35. data/generated/nl/linux/tcp_metrics.rb +327 -105
  36. data/generated/nl/linux/team.rb +279 -93
  37. data/generated/nl/linux/wireguard.rb +432 -95
  38. data/generated/nl/linux.rb +1 -0
  39. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  40. data/lib/nl/linux/version.rb +1 -1
  41. data/sig/generated/nl/linux/binder.rbs +366 -0
  42. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  43. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  44. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  45. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  46. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  47. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  48. data/sig/generated/nl/linux/fou.rbs +702 -0
  49. data/sig/generated/nl/linux/handshake.rbs +622 -0
  50. data/sig/generated/nl/linux/lockd.rbs +234 -0
  51. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  52. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  53. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  54. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  55. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  56. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  57. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  58. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  59. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  60. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  61. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  62. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  63. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  64. data/sig/generated/nl/linux/psp.rbs +1846 -0
  65. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  66. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  67. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  68. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  69. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  70. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  71. data/sig/generated/nl/linux/tc.rbs +19931 -0
  72. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  73. data/sig/generated/nl/linux/team.rbs +733 -0
  74. data/sig/generated/nl/linux/version.rbs +7 -0
  75. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  76. data/sig/generated/nl/linux.rbs +6 -0
  77. data/sig/generated/nl-linux.rbs +2 -0
  78. metadata +46 -7
@@ -0,0 +1,3659 @@
1
+ # Generated from generated/nl/linux/ovs_flow.rb with RBS::Inline
2
+
3
+ module Nl
4
+ module Linux
5
+ # OVS flow configuration over generic netlink.
6
+ class OvsFlow < ::Nl::Genl::Family
7
+ NAME: ::String
8
+
9
+ VERSION: ::Integer
10
+
11
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
12
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
13
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
14
+ # @param [#call] resolver
15
+ # @param [Symbol, nil] executor
16
+ # @param [Integer, nil] notification_capacity
17
+ # @return [OvsFlow]
18
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
19
+ # @param [#call] resolver
20
+ # @param [Symbol, nil] executor
21
+ # @param [Integer, nil] notification_capacity
22
+ # @yieldparam [OvsFlow] family
23
+ # @return [Object] the result of the block
24
+ def self.open: (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
25
+
26
+ # @private
27
+ MCAST_GROUPS: Hash[::Symbol, ::Nl::McastGroup]
28
+
29
+ module Enums
30
+ module OvsFragType
31
+ # Packet is not a fragment.
32
+ None: ::Integer
33
+
34
+ # Packet is a fragment with offset 0.
35
+ First: ::Integer
36
+
37
+ # Packet is a fragment with nonzero offset.
38
+ Later: ::Integer
39
+
40
+ Any: ::Integer
41
+ end
42
+
43
+ # Data path hash algorithm for computing Datapath hash. The algorithm type
44
+ # only specifies the fields in a flow will be used as part of the hash. Each
45
+ # datapath is free to use its own hash algorithm. The hash value will be
46
+ # opaque to the user space daemon.
47
+ module OvsHashAlg
48
+ OvsHashAlgL4: ::Integer
49
+ end
50
+ end
51
+
52
+ module Flags
53
+ module OvsUfidFlags
54
+ OmitKey: ::Integer
55
+
56
+ OmitMask: ::Integer
57
+
58
+ OmitActions: ::Integer
59
+ end
60
+
61
+ module CtStateFlags
62
+ # Beginning of a new connection.
63
+ New: ::Integer
64
+
65
+ # Part of an existing connenction
66
+ Established: ::Integer
67
+
68
+ # Related to an existing connection.
69
+ Related: ::Integer
70
+
71
+ # Flow is in the reply direction.
72
+ ReplyDir: ::Integer
73
+
74
+ # Could not track the connection.
75
+ Invalid: ::Integer
76
+
77
+ # Conntrack has occurred.
78
+ Tracked: ::Integer
79
+
80
+ # Packet's source address/port was mangled by NAT.
81
+ SrcNat: ::Integer
82
+
83
+ # Packet's destination address/port was mangled by NAT.
84
+ DstNat: ::Integer
85
+ end
86
+ end
87
+
88
+ module Structs
89
+ # Header for OVS Generic Netlink messages.
90
+ class OvsHeader < Struct[::Integer]
91
+ attr_accessor dp_ifindex(): ::Integer
92
+
93
+ def self.new: (?::Integer dp_ifindex) -> instance
94
+ | (?dp_ifindex: ::Integer) -> instance
95
+ end
96
+
97
+ class OvsHeader
98
+ # @!attribute [rw] dp_ifindex
99
+ # ifindex of local port for datapath (0 to make a request not specific
100
+ # to a datapath).
101
+ # @return [Integer]
102
+ # @private
103
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
104
+
105
+ # Decodes the struct.
106
+ # @rbs decoder: ::Nl::Decoder
107
+ # @rbs return: instance
108
+ # @param [Nl::Decoder] decoder
109
+ # @return [self]
110
+ def self.decode: (::Nl::Decoder decoder) -> instance
111
+
112
+ # Encodes the struct.
113
+ # @rbs encoder: ::Nl::Encoder
114
+ # @rbs return: void
115
+ # @param [Nl::Encoder] encoder
116
+ # @return [void]
117
+ def encode: (::Nl::Encoder encoder) -> void
118
+ end
119
+
120
+ class OvsFlowStats < Struct[::Integer]
121
+ attr_accessor n_packets(): ::Integer
122
+
123
+ attr_accessor n_bytes(): ::Integer
124
+
125
+ def self.new: (?::Integer n_packets, ?::Integer n_bytes) -> instance
126
+ | (?n_packets: ::Integer, ?n_bytes: ::Integer) -> instance
127
+ end
128
+
129
+ class OvsFlowStats
130
+ # @!attribute [rw] n_packets
131
+ # Number of matched packets.
132
+ # @return [Integer]
133
+ # @!attribute [rw] n_bytes
134
+ # Number of matched bytes.
135
+ # @return [Integer]
136
+ # @private
137
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
138
+
139
+ # Decodes the struct.
140
+ # @rbs decoder: ::Nl::Decoder
141
+ # @rbs return: instance
142
+ # @param [Nl::Decoder] decoder
143
+ # @return [self]
144
+ def self.decode: (::Nl::Decoder decoder) -> instance
145
+
146
+ # Encodes the struct.
147
+ # @rbs encoder: ::Nl::Encoder
148
+ # @rbs return: void
149
+ # @param [Nl::Encoder] encoder
150
+ # @return [void]
151
+ def encode: (::Nl::Encoder encoder) -> void
152
+ end
153
+
154
+ class OvsKeyEthernet < Struct[::String]
155
+ attr_accessor eth_src(): ::String
156
+
157
+ attr_accessor eth_dst(): ::String
158
+
159
+ def self.new: (?::String eth_src, ?::String eth_dst) -> instance
160
+ | (?eth_src: ::String, ?eth_dst: ::String) -> instance
161
+ end
162
+
163
+ class OvsKeyEthernet
164
+ # @!attribute [rw] eth_src
165
+ # @return [String]
166
+ # @!attribute [rw] eth_dst
167
+ # @return [String]
168
+ # @private
169
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
170
+
171
+ # Decodes the struct.
172
+ # @rbs decoder: ::Nl::Decoder
173
+ # @rbs return: instance
174
+ # @param [Nl::Decoder] decoder
175
+ # @return [self]
176
+ def self.decode: (::Nl::Decoder decoder) -> instance
177
+
178
+ # Encodes the struct.
179
+ # @rbs encoder: ::Nl::Encoder
180
+ # @rbs return: void
181
+ # @param [Nl::Encoder] encoder
182
+ # @return [void]
183
+ def encode: (::Nl::Encoder encoder) -> void
184
+ end
185
+
186
+ class OvsKeyMpls < Struct[::Integer]
187
+ attr_accessor mpls_lse(): ::Integer
188
+
189
+ def self.new: (?::Integer mpls_lse) -> instance
190
+ | (?mpls_lse: ::Integer) -> instance
191
+ end
192
+
193
+ class OvsKeyMpls
194
+ # @!attribute [rw] mpls_lse
195
+ # @return [Integer]
196
+ # @private
197
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
198
+
199
+ # Decodes the struct.
200
+ # @rbs decoder: ::Nl::Decoder
201
+ # @rbs return: instance
202
+ # @param [Nl::Decoder] decoder
203
+ # @return [self]
204
+ def self.decode: (::Nl::Decoder decoder) -> instance
205
+
206
+ # Encodes the struct.
207
+ # @rbs encoder: ::Nl::Encoder
208
+ # @rbs return: void
209
+ # @param [Nl::Encoder] encoder
210
+ # @return [void]
211
+ def encode: (::Nl::Encoder encoder) -> void
212
+ end
213
+
214
+ class OvsKeyIpv4 < Struct[::Integer]
215
+ attr_accessor ipv4_src(): ::Integer
216
+
217
+ attr_accessor ipv4_dst(): ::Integer
218
+
219
+ attr_accessor ipv4_proto(): ::Integer
220
+
221
+ attr_accessor ipv4_tos(): ::Integer
222
+
223
+ attr_accessor ipv4_ttl(): ::Integer
224
+
225
+ attr_accessor ipv4_frag(): ::Integer
226
+
227
+ def self.new: (?::Integer ipv4_src, ?::Integer ipv4_dst, ?::Integer ipv4_proto, ?::Integer ipv4_tos, ?::Integer ipv4_ttl, ?::Integer ipv4_frag) -> instance
228
+ | (?ipv4_src: ::Integer, ?ipv4_dst: ::Integer, ?ipv4_proto: ::Integer, ?ipv4_tos: ::Integer, ?ipv4_ttl: ::Integer, ?ipv4_frag: ::Integer) -> instance
229
+ end
230
+
231
+ class OvsKeyIpv4
232
+ # @!attribute [rw] ipv4_src
233
+ # @return [Integer]
234
+ # @!attribute [rw] ipv4_dst
235
+ # @return [Integer]
236
+ # @!attribute [rw] ipv4_proto
237
+ # @return [Integer]
238
+ # @!attribute [rw] ipv4_tos
239
+ # @return [Integer]
240
+ # @!attribute [rw] ipv4_ttl
241
+ # @return [Integer]
242
+ # @!attribute [rw] ipv4_frag
243
+ # @return [Integer]
244
+ # @private
245
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
246
+
247
+ # Decodes the struct.
248
+ # @rbs decoder: ::Nl::Decoder
249
+ # @rbs return: instance
250
+ # @param [Nl::Decoder] decoder
251
+ # @return [self]
252
+ def self.decode: (::Nl::Decoder decoder) -> instance
253
+
254
+ # Encodes the struct.
255
+ # @rbs encoder: ::Nl::Encoder
256
+ # @rbs return: void
257
+ # @param [Nl::Encoder] encoder
258
+ # @return [void]
259
+ def encode: (::Nl::Encoder encoder) -> void
260
+ end
261
+
262
+ class OvsKeyIpv6 < Struct[::String | ::Integer]
263
+ attr_accessor ipv6_src(): ::String
264
+
265
+ attr_accessor ipv6_dst(): ::String
266
+
267
+ attr_accessor ipv6_label(): ::Integer
268
+
269
+ attr_accessor ipv6_proto(): ::Integer
270
+
271
+ attr_accessor ipv6_tclass(): ::Integer
272
+
273
+ attr_accessor ipv6_hlimit(): ::Integer
274
+
275
+ attr_accessor ipv6_frag(): ::Integer
276
+
277
+ def self.new: (?::String ipv6_src, ?::String ipv6_dst, ?::Integer ipv6_label, ?::Integer ipv6_proto, ?::Integer ipv6_tclass, ?::Integer ipv6_hlimit, ?::Integer ipv6_frag) -> instance
278
+ | (?ipv6_src: ::String, ?ipv6_dst: ::String, ?ipv6_label: ::Integer, ?ipv6_proto: ::Integer, ?ipv6_tclass: ::Integer, ?ipv6_hlimit: ::Integer, ?ipv6_frag: ::Integer) -> instance
279
+ end
280
+
281
+ class OvsKeyIpv6
282
+ # @!attribute [rw] ipv6_src
283
+ # @return [String]
284
+ # @!attribute [rw] ipv6_dst
285
+ # @return [String]
286
+ # @!attribute [rw] ipv6_label
287
+ # @return [Integer]
288
+ # @!attribute [rw] ipv6_proto
289
+ # @return [Integer]
290
+ # @!attribute [rw] ipv6_tclass
291
+ # @return [Integer]
292
+ # @!attribute [rw] ipv6_hlimit
293
+ # @return [Integer]
294
+ # @!attribute [rw] ipv6_frag
295
+ # @return [Integer]
296
+ # @private
297
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
298
+
299
+ # Decodes the struct.
300
+ # @rbs decoder: ::Nl::Decoder
301
+ # @rbs return: instance
302
+ # @param [Nl::Decoder] decoder
303
+ # @return [self]
304
+ def self.decode: (::Nl::Decoder decoder) -> instance
305
+
306
+ # Encodes the struct.
307
+ # @rbs encoder: ::Nl::Encoder
308
+ # @rbs return: void
309
+ # @param [Nl::Encoder] encoder
310
+ # @return [void]
311
+ def encode: (::Nl::Encoder encoder) -> void
312
+ end
313
+
314
+ class OvsKeyIpv6Exthdrs < Struct[::Integer]
315
+ attr_accessor hdrs(): ::Integer
316
+
317
+ def self.new: (?::Integer hdrs) -> instance
318
+ | (?hdrs: ::Integer) -> instance
319
+ end
320
+
321
+ class OvsKeyIpv6Exthdrs
322
+ # @!attribute [rw] hdrs
323
+ # @return [Integer]
324
+ # @private
325
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
326
+
327
+ # Decodes the struct.
328
+ # @rbs decoder: ::Nl::Decoder
329
+ # @rbs return: instance
330
+ # @param [Nl::Decoder] decoder
331
+ # @return [self]
332
+ def self.decode: (::Nl::Decoder decoder) -> instance
333
+
334
+ # Encodes the struct.
335
+ # @rbs encoder: ::Nl::Encoder
336
+ # @rbs return: void
337
+ # @param [Nl::Encoder] encoder
338
+ # @return [void]
339
+ def encode: (::Nl::Encoder encoder) -> void
340
+ end
341
+
342
+ class OvsKeyTcp < Struct[::Integer]
343
+ attr_accessor tcp_src(): ::Integer
344
+
345
+ attr_accessor tcp_dst(): ::Integer
346
+
347
+ def self.new: (?::Integer tcp_src, ?::Integer tcp_dst) -> instance
348
+ | (?tcp_src: ::Integer, ?tcp_dst: ::Integer) -> instance
349
+ end
350
+
351
+ class OvsKeyTcp
352
+ # @!attribute [rw] tcp_src
353
+ # @return [Integer]
354
+ # @!attribute [rw] tcp_dst
355
+ # @return [Integer]
356
+ # @private
357
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
358
+
359
+ # Decodes the struct.
360
+ # @rbs decoder: ::Nl::Decoder
361
+ # @rbs return: instance
362
+ # @param [Nl::Decoder] decoder
363
+ # @return [self]
364
+ def self.decode: (::Nl::Decoder decoder) -> instance
365
+
366
+ # Encodes the struct.
367
+ # @rbs encoder: ::Nl::Encoder
368
+ # @rbs return: void
369
+ # @param [Nl::Encoder] encoder
370
+ # @return [void]
371
+ def encode: (::Nl::Encoder encoder) -> void
372
+ end
373
+
374
+ class OvsKeyUdp < Struct[::Integer]
375
+ attr_accessor udp_src(): ::Integer
376
+
377
+ attr_accessor udp_dst(): ::Integer
378
+
379
+ def self.new: (?::Integer udp_src, ?::Integer udp_dst) -> instance
380
+ | (?udp_src: ::Integer, ?udp_dst: ::Integer) -> instance
381
+ end
382
+
383
+ class OvsKeyUdp
384
+ # @!attribute [rw] udp_src
385
+ # @return [Integer]
386
+ # @!attribute [rw] udp_dst
387
+ # @return [Integer]
388
+ # @private
389
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
390
+
391
+ # Decodes the struct.
392
+ # @rbs decoder: ::Nl::Decoder
393
+ # @rbs return: instance
394
+ # @param [Nl::Decoder] decoder
395
+ # @return [self]
396
+ def self.decode: (::Nl::Decoder decoder) -> instance
397
+
398
+ # Encodes the struct.
399
+ # @rbs encoder: ::Nl::Encoder
400
+ # @rbs return: void
401
+ # @param [Nl::Encoder] encoder
402
+ # @return [void]
403
+ def encode: (::Nl::Encoder encoder) -> void
404
+ end
405
+
406
+ class OvsKeySctp < Struct[::Integer]
407
+ attr_accessor sctp_src(): ::Integer
408
+
409
+ attr_accessor sctp_dst(): ::Integer
410
+
411
+ def self.new: (?::Integer sctp_src, ?::Integer sctp_dst) -> instance
412
+ | (?sctp_src: ::Integer, ?sctp_dst: ::Integer) -> instance
413
+ end
414
+
415
+ class OvsKeySctp
416
+ # @!attribute [rw] sctp_src
417
+ # @return [Integer]
418
+ # @!attribute [rw] sctp_dst
419
+ # @return [Integer]
420
+ # @private
421
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
422
+
423
+ # Decodes the struct.
424
+ # @rbs decoder: ::Nl::Decoder
425
+ # @rbs return: instance
426
+ # @param [Nl::Decoder] decoder
427
+ # @return [self]
428
+ def self.decode: (::Nl::Decoder decoder) -> instance
429
+
430
+ # Encodes the struct.
431
+ # @rbs encoder: ::Nl::Encoder
432
+ # @rbs return: void
433
+ # @param [Nl::Encoder] encoder
434
+ # @return [void]
435
+ def encode: (::Nl::Encoder encoder) -> void
436
+ end
437
+
438
+ class OvsKeyIcmp < Struct[::Integer]
439
+ attr_accessor icmp_type(): ::Integer
440
+
441
+ attr_accessor icmp_code(): ::Integer
442
+
443
+ def self.new: (?::Integer icmp_type, ?::Integer icmp_code) -> instance
444
+ | (?icmp_type: ::Integer, ?icmp_code: ::Integer) -> instance
445
+ end
446
+
447
+ class OvsKeyIcmp
448
+ # @!attribute [rw] icmp_type
449
+ # @return [Integer]
450
+ # @!attribute [rw] icmp_code
451
+ # @return [Integer]
452
+ # @private
453
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
454
+
455
+ # Decodes the struct.
456
+ # @rbs decoder: ::Nl::Decoder
457
+ # @rbs return: instance
458
+ # @param [Nl::Decoder] decoder
459
+ # @return [self]
460
+ def self.decode: (::Nl::Decoder decoder) -> instance
461
+
462
+ # Encodes the struct.
463
+ # @rbs encoder: ::Nl::Encoder
464
+ # @rbs return: void
465
+ # @param [Nl::Encoder] encoder
466
+ # @return [void]
467
+ def encode: (::Nl::Encoder encoder) -> void
468
+ end
469
+
470
+ class OvsKeyArp < Struct[::Integer | ::String]
471
+ attr_accessor arp_sip(): ::Integer
472
+
473
+ attr_accessor arp_tip(): ::Integer
474
+
475
+ attr_accessor arp_op(): ::Integer
476
+
477
+ attr_accessor arp_sha(): ::String
478
+
479
+ attr_accessor arp_tha(): ::String
480
+
481
+ def self.new: (?::Integer arp_sip, ?::Integer arp_tip, ?::Integer arp_op, ?::String arp_sha, ?::String arp_tha) -> instance
482
+ | (?arp_sip: ::Integer, ?arp_tip: ::Integer, ?arp_op: ::Integer, ?arp_sha: ::String, ?arp_tha: ::String) -> instance
483
+ end
484
+
485
+ class OvsKeyArp
486
+ # @!attribute [rw] arp_sip
487
+ # @return [Integer]
488
+ # @!attribute [rw] arp_tip
489
+ # @return [Integer]
490
+ # @!attribute [rw] arp_op
491
+ # @return [Integer]
492
+ # @!attribute [rw] arp_sha
493
+ # @return [String]
494
+ # @!attribute [rw] arp_tha
495
+ # @return [String]
496
+ # @private
497
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
498
+
499
+ # Decodes the struct.
500
+ # @rbs decoder: ::Nl::Decoder
501
+ # @rbs return: instance
502
+ # @param [Nl::Decoder] decoder
503
+ # @return [self]
504
+ def self.decode: (::Nl::Decoder decoder) -> instance
505
+
506
+ # Encodes the struct.
507
+ # @rbs encoder: ::Nl::Encoder
508
+ # @rbs return: void
509
+ # @param [Nl::Encoder] encoder
510
+ # @return [void]
511
+ def encode: (::Nl::Encoder encoder) -> void
512
+ end
513
+
514
+ class OvsKeyNd < Struct[::String]
515
+ attr_accessor nd_target(): ::String
516
+
517
+ attr_accessor nd_sll(): ::String
518
+
519
+ attr_accessor nd_tll(): ::String
520
+
521
+ def self.new: (?::String nd_target, ?::String nd_sll, ?::String nd_tll) -> instance
522
+ | (?nd_target: ::String, ?nd_sll: ::String, ?nd_tll: ::String) -> instance
523
+ end
524
+
525
+ class OvsKeyNd
526
+ # @!attribute [rw] nd_target
527
+ # @return [String]
528
+ # @!attribute [rw] nd_sll
529
+ # @return [String]
530
+ # @!attribute [rw] nd_tll
531
+ # @return [String]
532
+ # @private
533
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
534
+
535
+ # Decodes the struct.
536
+ # @rbs decoder: ::Nl::Decoder
537
+ # @rbs return: instance
538
+ # @param [Nl::Decoder] decoder
539
+ # @return [self]
540
+ def self.decode: (::Nl::Decoder decoder) -> instance
541
+
542
+ # Encodes the struct.
543
+ # @rbs encoder: ::Nl::Encoder
544
+ # @rbs return: void
545
+ # @param [Nl::Encoder] encoder
546
+ # @return [void]
547
+ def encode: (::Nl::Encoder encoder) -> void
548
+ end
549
+
550
+ class OvsKeyCtTupleIpv4 < Struct[::Integer]
551
+ attr_accessor ipv4_src(): ::Integer
552
+
553
+ attr_accessor ipv4_dst(): ::Integer
554
+
555
+ attr_accessor src_port(): ::Integer
556
+
557
+ attr_accessor dst_port(): ::Integer
558
+
559
+ attr_accessor ipv4_proto(): ::Integer
560
+
561
+ def self.new: (?::Integer ipv4_src, ?::Integer ipv4_dst, ?::Integer src_port, ?::Integer dst_port, ?::Integer ipv4_proto) -> instance
562
+ | (?ipv4_src: ::Integer, ?ipv4_dst: ::Integer, ?src_port: ::Integer, ?dst_port: ::Integer, ?ipv4_proto: ::Integer) -> instance
563
+ end
564
+
565
+ class OvsKeyCtTupleIpv4
566
+ # @!attribute [rw] ipv4_src
567
+ # @return [Integer]
568
+ # @!attribute [rw] ipv4_dst
569
+ # @return [Integer]
570
+ # @!attribute [rw] src_port
571
+ # @return [Integer]
572
+ # @!attribute [rw] dst_port
573
+ # @return [Integer]
574
+ # @!attribute [rw] ipv4_proto
575
+ # @return [Integer]
576
+ # @private
577
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
578
+
579
+ # Decodes the struct.
580
+ # @rbs decoder: ::Nl::Decoder
581
+ # @rbs return: instance
582
+ # @param [Nl::Decoder] decoder
583
+ # @return [self]
584
+ def self.decode: (::Nl::Decoder decoder) -> instance
585
+
586
+ # Encodes the struct.
587
+ # @rbs encoder: ::Nl::Encoder
588
+ # @rbs return: void
589
+ # @param [Nl::Encoder] encoder
590
+ # @return [void]
591
+ def encode: (::Nl::Encoder encoder) -> void
592
+ end
593
+
594
+ class OvsActionPushVlan < Struct[::Integer]
595
+ attr_accessor vlan_tpid(): ::Integer
596
+
597
+ attr_accessor vlan_tci(): ::Integer
598
+
599
+ def self.new: (?::Integer vlan_tpid, ?::Integer vlan_tci) -> instance
600
+ | (?vlan_tpid: ::Integer, ?vlan_tci: ::Integer) -> instance
601
+ end
602
+
603
+ class OvsActionPushVlan
604
+ # @!attribute [rw] vlan_tpid
605
+ # Tag protocol identifier (TPID) to push.
606
+ # @return [Integer]
607
+ # @!attribute [rw] vlan_tci
608
+ # Tag control identifier (TCI) to push.
609
+ # @return [Integer]
610
+ # @private
611
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
612
+
613
+ # Decodes the struct.
614
+ # @rbs decoder: ::Nl::Decoder
615
+ # @rbs return: instance
616
+ # @param [Nl::Decoder] decoder
617
+ # @return [self]
618
+ def self.decode: (::Nl::Decoder decoder) -> instance
619
+
620
+ # Encodes the struct.
621
+ # @rbs encoder: ::Nl::Encoder
622
+ # @rbs return: void
623
+ # @param [Nl::Encoder] encoder
624
+ # @return [void]
625
+ def encode: (::Nl::Encoder encoder) -> void
626
+ end
627
+
628
+ class OvsActionHash < Struct[::Integer]
629
+ attr_accessor hash_alg(): ::Integer
630
+
631
+ attr_accessor hash_basis(): ::Integer
632
+
633
+ def self.new: (?::Integer hash_alg, ?::Integer hash_basis) -> instance
634
+ | (?hash_alg: ::Integer, ?hash_basis: ::Integer) -> instance
635
+ end
636
+
637
+ class OvsActionHash
638
+ # @!attribute [rw] hash_alg
639
+ # Algorithm used to compute hash prior to recirculation.
640
+ # @return [Integer]
641
+ # @!attribute [rw] hash_basis
642
+ # Basis used for computing hash.
643
+ # @return [Integer]
644
+ # @private
645
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
646
+
647
+ # Decodes the struct.
648
+ # @rbs decoder: ::Nl::Decoder
649
+ # @rbs return: instance
650
+ # @param [Nl::Decoder] decoder
651
+ # @return [self]
652
+ def self.decode: (::Nl::Decoder decoder) -> instance
653
+
654
+ # Encodes the struct.
655
+ # @rbs encoder: ::Nl::Encoder
656
+ # @rbs return: void
657
+ # @param [Nl::Encoder] encoder
658
+ # @return [void]
659
+ def encode: (::Nl::Encoder encoder) -> void
660
+ end
661
+
662
+ class OvsActionPushMpls < Struct[::Integer]
663
+ attr_accessor mpls_lse(): ::Integer
664
+
665
+ attr_accessor mpls_ethertype(): ::Integer
666
+
667
+ def self.new: (?::Integer mpls_lse, ?::Integer mpls_ethertype) -> instance
668
+ | (?mpls_lse: ::Integer, ?mpls_ethertype: ::Integer) -> instance
669
+ end
670
+
671
+ class OvsActionPushMpls
672
+ # @!attribute [rw] mpls_lse
673
+ # MPLS label stack entry to push
674
+ # @return [Integer]
675
+ # @!attribute [rw] mpls_ethertype
676
+ # Ethertype to set in the encapsulating ethernet frame. The only values
677
+ # ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC,
678
+ # indicating MPLS unicast or multicast. Other are rejected.
679
+ # @return [Integer]
680
+ # @private
681
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
682
+
683
+ # Decodes the struct.
684
+ # @rbs decoder: ::Nl::Decoder
685
+ # @rbs return: instance
686
+ # @param [Nl::Decoder] decoder
687
+ # @return [self]
688
+ def self.decode: (::Nl::Decoder decoder) -> instance
689
+
690
+ # Encodes the struct.
691
+ # @rbs encoder: ::Nl::Encoder
692
+ # @rbs return: void
693
+ # @param [Nl::Encoder] encoder
694
+ # @return [void]
695
+ def encode: (::Nl::Encoder encoder) -> void
696
+ end
697
+
698
+ class OvsActionAddMpls < Struct[::Integer]
699
+ attr_accessor mpls_lse(): ::Integer
700
+
701
+ attr_accessor mpls_ethertype(): ::Integer
702
+
703
+ attr_accessor tun_flags(): ::Integer
704
+
705
+ def self.new: (?::Integer mpls_lse, ?::Integer mpls_ethertype, ?::Integer tun_flags) -> instance
706
+ | (?mpls_lse: ::Integer, ?mpls_ethertype: ::Integer, ?tun_flags: ::Integer) -> instance
707
+ end
708
+
709
+ class OvsActionAddMpls
710
+ # @!attribute [rw] mpls_lse
711
+ # MPLS label stack entry to push
712
+ # @return [Integer]
713
+ # @!attribute [rw] mpls_ethertype
714
+ # Ethertype to set in the encapsulating ethernet frame. The only values
715
+ # ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC,
716
+ # indicating MPLS unicast or multicast. Other are rejected.
717
+ # @return [Integer]
718
+ # @!attribute [rw] tun_flags
719
+ # MPLS tunnel attributes.
720
+ # @return [Integer]
721
+ # @private
722
+ MEMBERS: Hash[::Symbol, ::Nl::_DataType]
723
+
724
+ # Decodes the struct.
725
+ # @rbs decoder: ::Nl::Decoder
726
+ # @rbs return: instance
727
+ # @param [Nl::Decoder] decoder
728
+ # @return [self]
729
+ def self.decode: (::Nl::Decoder decoder) -> instance
730
+
731
+ # Encodes the struct.
732
+ # @rbs encoder: ::Nl::Encoder
733
+ # @rbs return: void
734
+ # @param [Nl::Encoder] encoder
735
+ # @return [void]
736
+ def encode: (::Nl::Encoder encoder) -> void
737
+ end
738
+ end
739
+
740
+ module AttributeSets
741
+ class FlowAttrs < ::Nl::AttributeSet
742
+ # Abstract class
743
+ class Attribute < ::Nl::AttributeSet::Attribute
744
+ end
745
+
746
+ # Nested attributes specifying the flow key. Always present in
747
+ # notifications. Required for all requests (except dumps).
748
+ class Key < Attribute
749
+ TYPE: ::Integer
750
+
751
+ NAME: ::Symbol
752
+
753
+ # @private
754
+ ORDER: ::Integer
755
+ end
756
+
757
+ # Nested attributes specifying the actions to take for packets that
758
+ # match the key. Always present in notifications. Required for
759
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
760
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
761
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
762
+ # nested attributes must be given.
763
+ class Actions < Attribute
764
+ TYPE: ::Integer
765
+
766
+ NAME: ::Symbol
767
+
768
+ # @private
769
+ ORDER: ::Integer
770
+ end
771
+
772
+ # Statistics for this flow. Present in notifications if the stats would
773
+ # be nonzero. Ignored in requests.
774
+ class Stats < Attribute
775
+ TYPE: ::Integer
776
+
777
+ NAME: ::Symbol
778
+
779
+ # @private
780
+ ORDER: ::Integer
781
+
782
+ # @private
783
+ DATATYPE: untyped
784
+ end
785
+
786
+ # An 8-bit value giving the ORed value of all of the TCP flags seen on
787
+ # packets in this flow. Only present in notifications for TCP flows, and
788
+ # only if it would be nonzero. Ignored in requests.
789
+ class TcpFlags < Attribute
790
+ TYPE: ::Integer
791
+
792
+ NAME: ::Symbol
793
+
794
+ # @private
795
+ ORDER: ::Integer
796
+
797
+ # @private
798
+ DATATYPE: untyped
799
+ end
800
+
801
+ # A 64-bit integer giving the time, in milliseconds on the system
802
+ # monotonic clock, at which a packet was last processed for this
803
+ # flow. Only present in notifications if a packet has been processed for
804
+ # this flow. Ignored in requests.
805
+ class Used < Attribute
806
+ TYPE: ::Integer
807
+
808
+ NAME: ::Symbol
809
+
810
+ # @private
811
+ ORDER: ::Integer
812
+
813
+ # @private
814
+ DATATYPE: untyped
815
+ end
816
+
817
+ # If present in a OVS_FLOW_CMD_SET request, clears the last-used time,
818
+ # accumulated TCP flags, and statistics for this flow. Otherwise
819
+ # ignored in requests. Never present in notifications.
820
+ class Clear < Attribute
821
+ TYPE: ::Integer
822
+
823
+ NAME: ::Symbol
824
+
825
+ # @private
826
+ ORDER: ::Integer
827
+
828
+ # @private
829
+ DATATYPE: untyped
830
+ end
831
+
832
+ # Nested attributes specifying the mask bits for wildcarded flow
833
+ # match. Mask bit value '1' specifies exact match with corresponding
834
+ # flow key bit, while mask bit value '0' specifies a wildcarded
835
+ # match. Omitting attribute is treated as wildcarding all corresponding
836
+ # fields. Optional for all requests. If not present, all flow key bits
837
+ # are exact match bits.
838
+ class Mask < Attribute
839
+ TYPE: ::Integer
840
+
841
+ NAME: ::Symbol
842
+
843
+ # @private
844
+ ORDER: ::Integer
845
+ end
846
+
847
+ # Flow operation is a feature probe, error logging should be suppressed.
848
+ class Probe < Attribute
849
+ TYPE: ::Integer
850
+
851
+ NAME: ::Symbol
852
+
853
+ # @private
854
+ ORDER: ::Integer
855
+
856
+ # @private
857
+ DATATYPE: untyped
858
+ end
859
+
860
+ # A value between 1-16 octets specifying a unique identifier for the
861
+ # flow. Causes the flow to be indexed by this value rather than the
862
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
863
+ # requests. Present in notifications if the flow was created with this
864
+ # attribute.
865
+ class Ufid < Attribute
866
+ TYPE: ::Integer
867
+
868
+ NAME: ::Symbol
869
+
870
+ # @private
871
+ ORDER: ::Integer
872
+
873
+ # @private
874
+ DATATYPE: untyped
875
+ end
876
+
877
+ # A 32-bit value of ORed flags that provide alternative semantics for
878
+ # flow installation and retrieval. Optional for all requests.
879
+ #
880
+ #
881
+ # Known flags are defined in {Flags::OvsUfidFlags}.
882
+ class UfidFlags < Attribute
883
+ TYPE: ::Integer
884
+
885
+ NAME: ::Symbol
886
+
887
+ # @private
888
+ ORDER: ::Integer
889
+
890
+ # @private
891
+ DATATYPE: untyped
892
+ end
893
+
894
+ class Pad < Attribute
895
+ TYPE: ::Integer
896
+
897
+ NAME: ::Symbol
898
+
899
+ # @private
900
+ ORDER: ::Integer
901
+
902
+ # @private
903
+ DATATYPE: untyped
904
+ end
905
+
906
+ # @private
907
+ BY_NAME: Hash[::Symbol, Attribute]
908
+
909
+ # @private
910
+ BY_TYPE: Hash[::Integer, Attribute]
911
+
912
+ # Nested attributes specifying the flow key. Always present in
913
+ # notifications. Required for all requests (except dumps).
914
+ # @rbs return: AttributeSets::KeyAttrs
915
+ # @return [AttributeSets::KeyAttrs]
916
+ # @see Key
917
+ def key: () -> AttributeSets::KeyAttrs
918
+
919
+ # Nested attributes specifying the actions to take for packets that
920
+ # match the key. Always present in notifications. Required for
921
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
922
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
923
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
924
+ # nested attributes must be given.
925
+ # @rbs return: AttributeSets::ActionAttrs
926
+ # @return [AttributeSets::ActionAttrs]
927
+ # @see Actions
928
+ def actions: () -> AttributeSets::ActionAttrs
929
+
930
+ # Statistics for this flow. Present in notifications if the stats would
931
+ # be nonzero. Ignored in requests.
932
+ # @rbs return: Structs::OvsFlowStats
933
+ # @return [Structs::OvsFlowStats]
934
+ # @see Stats
935
+ def stats: () -> Structs::OvsFlowStats
936
+
937
+ # An 8-bit value giving the ORed value of all of the TCP flags seen on
938
+ # packets in this flow. Only present in notifications for TCP flows, and
939
+ # only if it would be nonzero. Ignored in requests.
940
+ # @rbs return: ::Integer
941
+ # @return [Integer]
942
+ # @see TcpFlags
943
+ def tcp_flags: () -> ::Integer
944
+
945
+ # A 64-bit integer giving the time, in milliseconds on the system
946
+ # monotonic clock, at which a packet was last processed for this
947
+ # flow. Only present in notifications if a packet has been processed for
948
+ # this flow. Ignored in requests.
949
+ # @rbs return: ::Integer
950
+ # @return [Integer]
951
+ # @see Used
952
+ def used: () -> ::Integer
953
+
954
+ # If present in a OVS_FLOW_CMD_SET request, clears the last-used time,
955
+ # accumulated TCP flags, and statistics for this flow. Otherwise
956
+ # ignored in requests. Never present in notifications.
957
+ # @rbs return: ::Integer
958
+ # @return [Integer]
959
+ # @see Clear
960
+ def clear: () -> ::Integer
961
+
962
+ # Nested attributes specifying the mask bits for wildcarded flow
963
+ # match. Mask bit value '1' specifies exact match with corresponding
964
+ # flow key bit, while mask bit value '0' specifies a wildcarded
965
+ # match. Omitting attribute is treated as wildcarding all corresponding
966
+ # fields. Optional for all requests. If not present, all flow key bits
967
+ # are exact match bits.
968
+ # @rbs return: AttributeSets::KeyAttrs
969
+ # @return [AttributeSets::KeyAttrs]
970
+ # @see Mask
971
+ def mask: () -> AttributeSets::KeyAttrs
972
+
973
+ # Flow operation is a feature probe, error logging should be suppressed.
974
+ # @rbs return: ::String
975
+ # @return [String]
976
+ # @see Probe
977
+ def probe: () -> ::String
978
+
979
+ # A value between 1-16 octets specifying a unique identifier for the
980
+ # flow. Causes the flow to be indexed by this value rather than the
981
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
982
+ # requests. Present in notifications if the flow was created with this
983
+ # attribute.
984
+ # @rbs return: ::String
985
+ # @return [String]
986
+ # @see Ufid
987
+ def ufid: () -> ::String
988
+
989
+ # A 32-bit value of ORed flags that provide alternative semantics for
990
+ # flow installation and retrieval. Optional for all requests.
991
+ #
992
+ #
993
+ # Known flags are defined in {Flags::OvsUfidFlags}.
994
+ # @rbs return: ::Integer
995
+ # @return [Integer]
996
+ # @see UfidFlags
997
+ def ufid_flags: () -> ::Integer
998
+
999
+ # @rbs return: ::String
1000
+ # @return [String]
1001
+ # @see Pad
1002
+ def pad: () -> ::String
1003
+
1004
+ # Looks up Attribute class by name.
1005
+ # @rbs name: Symbol
1006
+ # @rbs return: Attribute
1007
+ # @param [Symbol] name
1008
+ # @return [Attribute]
1009
+ def self.by_name: (Symbol name) -> Attribute
1010
+
1011
+ # Looks up Attribute class by type value.
1012
+ # @rbs type: Integer
1013
+ # @rbs return: Attribute
1014
+ # @param [Integer] type
1015
+ # @return [Attribute]
1016
+ def self.by_type: (Integer type) -> Attribute
1017
+ end
1018
+
1019
+ class KeyAttrs < ::Nl::AttributeSet
1020
+ # Abstract class
1021
+ class Attribute < ::Nl::AttributeSet::Attribute
1022
+ end
1023
+
1024
+ class Encap < Attribute
1025
+ TYPE: ::Integer
1026
+
1027
+ NAME: ::Symbol
1028
+
1029
+ # @private
1030
+ ORDER: ::Integer
1031
+ end
1032
+
1033
+ class Priority < Attribute
1034
+ TYPE: ::Integer
1035
+
1036
+ NAME: ::Symbol
1037
+
1038
+ # @private
1039
+ ORDER: ::Integer
1040
+
1041
+ # @private
1042
+ DATATYPE: untyped
1043
+ end
1044
+
1045
+ class InPort < Attribute
1046
+ TYPE: ::Integer
1047
+
1048
+ NAME: ::Symbol
1049
+
1050
+ # @private
1051
+ ORDER: ::Integer
1052
+
1053
+ # @private
1054
+ DATATYPE: untyped
1055
+ end
1056
+
1057
+ # struct ovs_key_ethernet
1058
+ class Ethernet < Attribute
1059
+ TYPE: ::Integer
1060
+
1061
+ NAME: ::Symbol
1062
+
1063
+ # @private
1064
+ ORDER: ::Integer
1065
+
1066
+ # @private
1067
+ DATATYPE: untyped
1068
+ end
1069
+
1070
+ class Vlan < Attribute
1071
+ TYPE: ::Integer
1072
+
1073
+ NAME: ::Symbol
1074
+
1075
+ # @private
1076
+ ORDER: ::Integer
1077
+
1078
+ # @private
1079
+ DATATYPE: untyped
1080
+ end
1081
+
1082
+ class Ethertype < Attribute
1083
+ TYPE: ::Integer
1084
+
1085
+ NAME: ::Symbol
1086
+
1087
+ # @private
1088
+ ORDER: ::Integer
1089
+
1090
+ # @private
1091
+ DATATYPE: untyped
1092
+ end
1093
+
1094
+ class Ipv4 < Attribute
1095
+ TYPE: ::Integer
1096
+
1097
+ NAME: ::Symbol
1098
+
1099
+ # @private
1100
+ ORDER: ::Integer
1101
+
1102
+ # @private
1103
+ DATATYPE: untyped
1104
+ end
1105
+
1106
+ # struct ovs_key_ipv6
1107
+ class Ipv6 < Attribute
1108
+ TYPE: ::Integer
1109
+
1110
+ NAME: ::Symbol
1111
+
1112
+ # @private
1113
+ ORDER: ::Integer
1114
+
1115
+ # @private
1116
+ DATATYPE: untyped
1117
+ end
1118
+
1119
+ class Tcp < Attribute
1120
+ TYPE: ::Integer
1121
+
1122
+ NAME: ::Symbol
1123
+
1124
+ # @private
1125
+ ORDER: ::Integer
1126
+
1127
+ # @private
1128
+ DATATYPE: untyped
1129
+ end
1130
+
1131
+ class Udp < Attribute
1132
+ TYPE: ::Integer
1133
+
1134
+ NAME: ::Symbol
1135
+
1136
+ # @private
1137
+ ORDER: ::Integer
1138
+
1139
+ # @private
1140
+ DATATYPE: untyped
1141
+ end
1142
+
1143
+ class Icmp < Attribute
1144
+ TYPE: ::Integer
1145
+
1146
+ NAME: ::Symbol
1147
+
1148
+ # @private
1149
+ ORDER: ::Integer
1150
+
1151
+ # @private
1152
+ DATATYPE: untyped
1153
+ end
1154
+
1155
+ class Icmpv6 < Attribute
1156
+ TYPE: ::Integer
1157
+
1158
+ NAME: ::Symbol
1159
+
1160
+ # @private
1161
+ ORDER: ::Integer
1162
+
1163
+ # @private
1164
+ DATATYPE: untyped
1165
+ end
1166
+
1167
+ # struct ovs_key_arp
1168
+ class Arp < Attribute
1169
+ TYPE: ::Integer
1170
+
1171
+ NAME: ::Symbol
1172
+
1173
+ # @private
1174
+ ORDER: ::Integer
1175
+
1176
+ # @private
1177
+ DATATYPE: untyped
1178
+ end
1179
+
1180
+ # struct ovs_key_nd
1181
+ class Nd < Attribute
1182
+ TYPE: ::Integer
1183
+
1184
+ NAME: ::Symbol
1185
+
1186
+ # @private
1187
+ ORDER: ::Integer
1188
+
1189
+ # @private
1190
+ DATATYPE: untyped
1191
+ end
1192
+
1193
+ class SkbMark < Attribute
1194
+ TYPE: ::Integer
1195
+
1196
+ NAME: ::Symbol
1197
+
1198
+ # @private
1199
+ ORDER: ::Integer
1200
+
1201
+ # @private
1202
+ DATATYPE: untyped
1203
+ end
1204
+
1205
+ class Tunnel < Attribute
1206
+ TYPE: ::Integer
1207
+
1208
+ NAME: ::Symbol
1209
+
1210
+ # @private
1211
+ ORDER: ::Integer
1212
+ end
1213
+
1214
+ class Sctp < Attribute
1215
+ TYPE: ::Integer
1216
+
1217
+ NAME: ::Symbol
1218
+
1219
+ # @private
1220
+ ORDER: ::Integer
1221
+
1222
+ # @private
1223
+ DATATYPE: untyped
1224
+ end
1225
+
1226
+ class TcpFlags < Attribute
1227
+ TYPE: ::Integer
1228
+
1229
+ NAME: ::Symbol
1230
+
1231
+ # @private
1232
+ ORDER: ::Integer
1233
+
1234
+ # @private
1235
+ DATATYPE: untyped
1236
+ end
1237
+
1238
+ # Value 0 indicates the hash is not computed by the datapath.
1239
+ class DpHash < Attribute
1240
+ TYPE: ::Integer
1241
+
1242
+ NAME: ::Symbol
1243
+
1244
+ # @private
1245
+ ORDER: ::Integer
1246
+
1247
+ # @private
1248
+ DATATYPE: untyped
1249
+ end
1250
+
1251
+ class RecircId < Attribute
1252
+ TYPE: ::Integer
1253
+
1254
+ NAME: ::Symbol
1255
+
1256
+ # @private
1257
+ ORDER: ::Integer
1258
+
1259
+ # @private
1260
+ DATATYPE: untyped
1261
+ end
1262
+
1263
+ class Mpls < Attribute
1264
+ TYPE: ::Integer
1265
+
1266
+ NAME: ::Symbol
1267
+
1268
+ # @private
1269
+ ORDER: ::Integer
1270
+
1271
+ # @private
1272
+ DATATYPE: untyped
1273
+ end
1274
+
1275
+ # Known flags are defined in {Flags::CtStateFlags}.
1276
+ class CtState < Attribute
1277
+ TYPE: ::Integer
1278
+
1279
+ NAME: ::Symbol
1280
+
1281
+ # @private
1282
+ ORDER: ::Integer
1283
+
1284
+ # @private
1285
+ DATATYPE: untyped
1286
+ end
1287
+
1288
+ # connection tracking zone
1289
+ class CtZone < Attribute
1290
+ TYPE: ::Integer
1291
+
1292
+ NAME: ::Symbol
1293
+
1294
+ # @private
1295
+ ORDER: ::Integer
1296
+
1297
+ # @private
1298
+ DATATYPE: untyped
1299
+ end
1300
+
1301
+ # connection tracking mark
1302
+ class CtMark < Attribute
1303
+ TYPE: ::Integer
1304
+
1305
+ NAME: ::Symbol
1306
+
1307
+ # @private
1308
+ ORDER: ::Integer
1309
+
1310
+ # @private
1311
+ DATATYPE: untyped
1312
+ end
1313
+
1314
+ # 16-octet connection tracking label
1315
+ class CtLabels < Attribute
1316
+ TYPE: ::Integer
1317
+
1318
+ NAME: ::Symbol
1319
+
1320
+ # @private
1321
+ ORDER: ::Integer
1322
+
1323
+ # @private
1324
+ DATATYPE: untyped
1325
+ end
1326
+
1327
+ class CtOrigTupleIpv4 < Attribute
1328
+ TYPE: ::Integer
1329
+
1330
+ NAME: ::Symbol
1331
+
1332
+ # @private
1333
+ ORDER: ::Integer
1334
+
1335
+ # @private
1336
+ DATATYPE: untyped
1337
+ end
1338
+
1339
+ # struct ovs_key_ct_tuple_ipv6
1340
+ class CtOrigTupleIpv6 < Attribute
1341
+ TYPE: ::Integer
1342
+
1343
+ NAME: ::Symbol
1344
+
1345
+ # @private
1346
+ ORDER: ::Integer
1347
+
1348
+ # @private
1349
+ DATATYPE: untyped
1350
+ end
1351
+
1352
+ class Nsh < Attribute
1353
+ TYPE: ::Integer
1354
+
1355
+ NAME: ::Symbol
1356
+
1357
+ # @private
1358
+ ORDER: ::Integer
1359
+ end
1360
+
1361
+ # Should not be sent to the kernel
1362
+ class PacketType < Attribute
1363
+ TYPE: ::Integer
1364
+
1365
+ NAME: ::Symbol
1366
+
1367
+ # @private
1368
+ ORDER: ::Integer
1369
+
1370
+ # @private
1371
+ DATATYPE: untyped
1372
+ end
1373
+
1374
+ # Should not be sent to the kernel
1375
+ class NdExtensions < Attribute
1376
+ TYPE: ::Integer
1377
+
1378
+ NAME: ::Symbol
1379
+
1380
+ # @private
1381
+ ORDER: ::Integer
1382
+
1383
+ # @private
1384
+ DATATYPE: untyped
1385
+ end
1386
+
1387
+ # struct ip_tunnel_info
1388
+ class TunnelInfo < Attribute
1389
+ TYPE: ::Integer
1390
+
1391
+ NAME: ::Symbol
1392
+
1393
+ # @private
1394
+ ORDER: ::Integer
1395
+
1396
+ # @private
1397
+ DATATYPE: untyped
1398
+ end
1399
+
1400
+ # struct ovs_key_ipv6_exthdr
1401
+ class Ipv6Exthdrs < Attribute
1402
+ TYPE: ::Integer
1403
+
1404
+ NAME: ::Symbol
1405
+
1406
+ # @private
1407
+ ORDER: ::Integer
1408
+
1409
+ # @private
1410
+ DATATYPE: untyped
1411
+ end
1412
+
1413
+ # @private
1414
+ BY_NAME: Hash[::Symbol, Attribute]
1415
+
1416
+ # @private
1417
+ BY_TYPE: Hash[::Integer, Attribute]
1418
+
1419
+ # @rbs return: AttributeSets::KeyAttrs
1420
+ # @return [AttributeSets::KeyAttrs]
1421
+ # @see Encap
1422
+ def encap: () -> AttributeSets::KeyAttrs
1423
+
1424
+ # @rbs return: ::Integer
1425
+ # @return [Integer]
1426
+ # @see Priority
1427
+ def priority: () -> ::Integer
1428
+
1429
+ # @rbs return: ::Integer
1430
+ # @return [Integer]
1431
+ # @see InPort
1432
+ def in_port: () -> ::Integer
1433
+
1434
+ # struct ovs_key_ethernet
1435
+ # @rbs return: Structs::OvsKeyEthernet
1436
+ # @return [Structs::OvsKeyEthernet]
1437
+ # @see Ethernet
1438
+ def ethernet: () -> Structs::OvsKeyEthernet
1439
+
1440
+ # @rbs return: ::Integer
1441
+ # @return [Integer]
1442
+ # @see Vlan
1443
+ def vlan: () -> ::Integer
1444
+
1445
+ # @rbs return: ::Integer
1446
+ # @return [Integer]
1447
+ # @see Ethertype
1448
+ def ethertype: () -> ::Integer
1449
+
1450
+ # @rbs return: Structs::OvsKeyIpv4
1451
+ # @return [Structs::OvsKeyIpv4]
1452
+ # @see Ipv4
1453
+ def ipv4: () -> Structs::OvsKeyIpv4
1454
+
1455
+ # struct ovs_key_ipv6
1456
+ # @rbs return: Structs::OvsKeyIpv6
1457
+ # @return [Structs::OvsKeyIpv6]
1458
+ # @see Ipv6
1459
+ def ipv6: () -> Structs::OvsKeyIpv6
1460
+
1461
+ # @rbs return: Structs::OvsKeyTcp
1462
+ # @return [Structs::OvsKeyTcp]
1463
+ # @see Tcp
1464
+ def tcp: () -> Structs::OvsKeyTcp
1465
+
1466
+ # @rbs return: Structs::OvsKeyUdp
1467
+ # @return [Structs::OvsKeyUdp]
1468
+ # @see Udp
1469
+ def udp: () -> Structs::OvsKeyUdp
1470
+
1471
+ # @rbs return: Structs::OvsKeyIcmp
1472
+ # @return [Structs::OvsKeyIcmp]
1473
+ # @see Icmp
1474
+ def icmp: () -> Structs::OvsKeyIcmp
1475
+
1476
+ # @rbs return: Structs::OvsKeyIcmp
1477
+ # @return [Structs::OvsKeyIcmp]
1478
+ # @see Icmpv6
1479
+ def icmpv6: () -> Structs::OvsKeyIcmp
1480
+
1481
+ # struct ovs_key_arp
1482
+ # @rbs return: Structs::OvsKeyArp
1483
+ # @return [Structs::OvsKeyArp]
1484
+ # @see Arp
1485
+ def arp: () -> Structs::OvsKeyArp
1486
+
1487
+ # struct ovs_key_nd
1488
+ # @rbs return: Structs::OvsKeyNd
1489
+ # @return [Structs::OvsKeyNd]
1490
+ # @see Nd
1491
+ def nd: () -> Structs::OvsKeyNd
1492
+
1493
+ # @rbs return: ::Integer
1494
+ # @return [Integer]
1495
+ # @see SkbMark
1496
+ def skb_mark: () -> ::Integer
1497
+
1498
+ # @rbs return: AttributeSets::TunnelKeyAttrs
1499
+ # @return [AttributeSets::TunnelKeyAttrs]
1500
+ # @see Tunnel
1501
+ def tunnel: () -> AttributeSets::TunnelKeyAttrs
1502
+
1503
+ # @rbs return: Structs::OvsKeySctp
1504
+ # @return [Structs::OvsKeySctp]
1505
+ # @see Sctp
1506
+ def sctp: () -> Structs::OvsKeySctp
1507
+
1508
+ # @rbs return: ::Integer
1509
+ # @return [Integer]
1510
+ # @see TcpFlags
1511
+ def tcp_flags: () -> ::Integer
1512
+
1513
+ # Value 0 indicates the hash is not computed by the datapath.
1514
+ # @rbs return: ::Integer
1515
+ # @return [Integer]
1516
+ # @see DpHash
1517
+ def dp_hash: () -> ::Integer
1518
+
1519
+ # @rbs return: ::Integer
1520
+ # @return [Integer]
1521
+ # @see RecircId
1522
+ def recirc_id: () -> ::Integer
1523
+
1524
+ # @rbs return: Structs::OvsKeyMpls
1525
+ # @return [Structs::OvsKeyMpls]
1526
+ # @see Mpls
1527
+ def mpls: () -> Structs::OvsKeyMpls
1528
+
1529
+ # Known flags are defined in {Flags::CtStateFlags}.
1530
+ # @rbs return: ::Integer
1531
+ # @return [Integer]
1532
+ # @see CtState
1533
+ def ct_state: () -> ::Integer
1534
+
1535
+ # connection tracking zone
1536
+ # @rbs return: ::Integer
1537
+ # @return [Integer]
1538
+ # @see CtZone
1539
+ def ct_zone: () -> ::Integer
1540
+
1541
+ # connection tracking mark
1542
+ # @rbs return: ::Integer
1543
+ # @return [Integer]
1544
+ # @see CtMark
1545
+ def ct_mark: () -> ::Integer
1546
+
1547
+ # 16-octet connection tracking label
1548
+ # @rbs return: ::String
1549
+ # @return [String]
1550
+ # @see CtLabels
1551
+ def ct_labels: () -> ::String
1552
+
1553
+ # @rbs return: Structs::OvsKeyCtTupleIpv4
1554
+ # @return [Structs::OvsKeyCtTupleIpv4]
1555
+ # @see CtOrigTupleIpv4
1556
+ def ct_orig_tuple_ipv4: () -> Structs::OvsKeyCtTupleIpv4
1557
+
1558
+ # struct ovs_key_ct_tuple_ipv6
1559
+ # @rbs return: ::String
1560
+ # @return [String]
1561
+ # @see CtOrigTupleIpv6
1562
+ def ct_orig_tuple_ipv6: () -> ::String
1563
+
1564
+ # @rbs return: AttributeSets::OvsNshKeyAttrs
1565
+ # @return [AttributeSets::OvsNshKeyAttrs]
1566
+ # @see Nsh
1567
+ def nsh: () -> AttributeSets::OvsNshKeyAttrs
1568
+
1569
+ # Should not be sent to the kernel
1570
+ # @rbs return: ::Integer
1571
+ # @return [Integer]
1572
+ # @see PacketType
1573
+ def packet_type: () -> ::Integer
1574
+
1575
+ # Should not be sent to the kernel
1576
+ # @rbs return: ::String
1577
+ # @return [String]
1578
+ # @see NdExtensions
1579
+ def nd_extensions: () -> ::String
1580
+
1581
+ # struct ip_tunnel_info
1582
+ # @rbs return: ::String
1583
+ # @return [String]
1584
+ # @see TunnelInfo
1585
+ def tunnel_info: () -> ::String
1586
+
1587
+ # struct ovs_key_ipv6_exthdr
1588
+ # @rbs return: Structs::OvsKeyIpv6Exthdrs
1589
+ # @return [Structs::OvsKeyIpv6Exthdrs]
1590
+ # @see Ipv6Exthdrs
1591
+ def ipv6_exthdrs: () -> Structs::OvsKeyIpv6Exthdrs
1592
+
1593
+ # Looks up Attribute class by name.
1594
+ # @rbs name: Symbol
1595
+ # @rbs return: Attribute
1596
+ # @param [Symbol] name
1597
+ # @return [Attribute]
1598
+ def self.by_name: (Symbol name) -> Attribute
1599
+
1600
+ # Looks up Attribute class by type value.
1601
+ # @rbs type: Integer
1602
+ # @rbs return: Attribute
1603
+ # @param [Integer] type
1604
+ # @return [Attribute]
1605
+ def self.by_type: (Integer type) -> Attribute
1606
+ end
1607
+
1608
+ class ActionAttrs < ::Nl::AttributeSet
1609
+ # Abstract class
1610
+ class Attribute < ::Nl::AttributeSet::Attribute
1611
+ end
1612
+
1613
+ # ovs port number in datapath
1614
+ class Output < Attribute
1615
+ TYPE: ::Integer
1616
+
1617
+ NAME: ::Symbol
1618
+
1619
+ # @private
1620
+ ORDER: ::Integer
1621
+
1622
+ # @private
1623
+ DATATYPE: untyped
1624
+ end
1625
+
1626
+ class Userspace < Attribute
1627
+ TYPE: ::Integer
1628
+
1629
+ NAME: ::Symbol
1630
+
1631
+ # @private
1632
+ ORDER: ::Integer
1633
+ end
1634
+
1635
+ # Replaces the contents of an existing header. The single nested
1636
+ # attribute specifies a header to modify and its value.
1637
+ class Set < Attribute
1638
+ TYPE: ::Integer
1639
+
1640
+ NAME: ::Symbol
1641
+
1642
+ # @private
1643
+ ORDER: ::Integer
1644
+ end
1645
+
1646
+ # Push a new outermost 802.1Q or 802.1ad header onto the packet.
1647
+ class PushVlan < Attribute
1648
+ TYPE: ::Integer
1649
+
1650
+ NAME: ::Symbol
1651
+
1652
+ # @private
1653
+ ORDER: ::Integer
1654
+
1655
+ # @private
1656
+ DATATYPE: untyped
1657
+ end
1658
+
1659
+ # Pop the outermost 802.1Q or 802.1ad header from the packet.
1660
+ class PopVlan < Attribute
1661
+ TYPE: ::Integer
1662
+
1663
+ NAME: ::Symbol
1664
+
1665
+ # @private
1666
+ ORDER: ::Integer
1667
+
1668
+ # @private
1669
+ DATATYPE: untyped
1670
+ end
1671
+
1672
+ # Probabilistically executes actions, as specified in the nested
1673
+ # attributes.
1674
+ class Sample < Attribute
1675
+ TYPE: ::Integer
1676
+
1677
+ NAME: ::Symbol
1678
+
1679
+ # @private
1680
+ ORDER: ::Integer
1681
+ end
1682
+
1683
+ # recirc id
1684
+ class Recirc < Attribute
1685
+ TYPE: ::Integer
1686
+
1687
+ NAME: ::Symbol
1688
+
1689
+ # @private
1690
+ ORDER: ::Integer
1691
+
1692
+ # @private
1693
+ DATATYPE: untyped
1694
+ end
1695
+
1696
+ class Hash < Attribute
1697
+ TYPE: ::Integer
1698
+
1699
+ NAME: ::Symbol
1700
+
1701
+ # @private
1702
+ ORDER: ::Integer
1703
+
1704
+ # @private
1705
+ DATATYPE: untyped
1706
+ end
1707
+
1708
+ # Push a new MPLS label stack entry onto the top of the packets MPLS
1709
+ # label stack. Set the ethertype of the encapsulating frame to either
1710
+ # ETH_P_MPLS_UC or ETH_P_MPLS_MC to indicate the new packet contents.
1711
+ class PushMpls < Attribute
1712
+ TYPE: ::Integer
1713
+
1714
+ NAME: ::Symbol
1715
+
1716
+ # @private
1717
+ ORDER: ::Integer
1718
+
1719
+ # @private
1720
+ DATATYPE: untyped
1721
+ end
1722
+
1723
+ # ethertype
1724
+ class PopMpls < Attribute
1725
+ TYPE: ::Integer
1726
+
1727
+ NAME: ::Symbol
1728
+
1729
+ # @private
1730
+ ORDER: ::Integer
1731
+
1732
+ # @private
1733
+ DATATYPE: untyped
1734
+ end
1735
+
1736
+ # Replaces the contents of an existing header. A nested attribute
1737
+ # specifies a header to modify, its value, and a mask. For every bit set
1738
+ # in the mask, the corresponding bit value is copied from the value to
1739
+ # the packet header field, rest of the bits are left unchanged. The
1740
+ # non-masked value bits must be passed in as zeroes. Masking is not
1741
+ # supported for the OVS_KEY_ATTR_TUNNEL attribute.
1742
+ class SetMasked < Attribute
1743
+ TYPE: ::Integer
1744
+
1745
+ NAME: ::Symbol
1746
+
1747
+ # @private
1748
+ ORDER: ::Integer
1749
+ end
1750
+
1751
+ # Track the connection. Populate the conntrack-related entries
1752
+ # in the flow key.
1753
+ class Ct < Attribute
1754
+ TYPE: ::Integer
1755
+
1756
+ NAME: ::Symbol
1757
+
1758
+ # @private
1759
+ ORDER: ::Integer
1760
+ end
1761
+
1762
+ # struct ovs_action_trunc is a u32 max length
1763
+ class Trunc < Attribute
1764
+ TYPE: ::Integer
1765
+
1766
+ NAME: ::Symbol
1767
+
1768
+ # @private
1769
+ ORDER: ::Integer
1770
+
1771
+ # @private
1772
+ DATATYPE: untyped
1773
+ end
1774
+
1775
+ # struct ovs_action_push_eth
1776
+ class PushEth < Attribute
1777
+ TYPE: ::Integer
1778
+
1779
+ NAME: ::Symbol
1780
+
1781
+ # @private
1782
+ ORDER: ::Integer
1783
+
1784
+ # @private
1785
+ DATATYPE: untyped
1786
+ end
1787
+
1788
+ class PopEth < Attribute
1789
+ TYPE: ::Integer
1790
+
1791
+ NAME: ::Symbol
1792
+
1793
+ # @private
1794
+ ORDER: ::Integer
1795
+
1796
+ # @private
1797
+ DATATYPE: untyped
1798
+ end
1799
+
1800
+ class CtClear < Attribute
1801
+ TYPE: ::Integer
1802
+
1803
+ NAME: ::Symbol
1804
+
1805
+ # @private
1806
+ ORDER: ::Integer
1807
+
1808
+ # @private
1809
+ DATATYPE: untyped
1810
+ end
1811
+
1812
+ # Push NSH header to the packet.
1813
+ class PushNsh < Attribute
1814
+ TYPE: ::Integer
1815
+
1816
+ NAME: ::Symbol
1817
+
1818
+ # @private
1819
+ ORDER: ::Integer
1820
+ end
1821
+
1822
+ # Pop the outermost NSH header off the packet.
1823
+ class PopNsh < Attribute
1824
+ TYPE: ::Integer
1825
+
1826
+ NAME: ::Symbol
1827
+
1828
+ # @private
1829
+ ORDER: ::Integer
1830
+
1831
+ # @private
1832
+ DATATYPE: untyped
1833
+ end
1834
+
1835
+ # Run packet through a meter, which may drop the packet, or modify the
1836
+ # packet (e.g., change the DSCP field)
1837
+ class Meter < Attribute
1838
+ TYPE: ::Integer
1839
+
1840
+ NAME: ::Symbol
1841
+
1842
+ # @private
1843
+ ORDER: ::Integer
1844
+
1845
+ # @private
1846
+ DATATYPE: untyped
1847
+ end
1848
+
1849
+ # Make a copy of the packet and execute a list of actions without
1850
+ # affecting the original packet and key.
1851
+ class Clone < Attribute
1852
+ TYPE: ::Integer
1853
+
1854
+ NAME: ::Symbol
1855
+
1856
+ # @private
1857
+ ORDER: ::Integer
1858
+ end
1859
+
1860
+ # Check the packet length and execute a set of actions if greater than
1861
+ # the specified packet length, else execute another set of actions.
1862
+ class CheckPktLen < Attribute
1863
+ TYPE: ::Integer
1864
+
1865
+ NAME: ::Symbol
1866
+
1867
+ # @private
1868
+ ORDER: ::Integer
1869
+ end
1870
+
1871
+ # Push a new MPLS label stack entry at the start of the packet or at the
1872
+ # start of the l3 header depending on the value of l3 tunnel flag in the
1873
+ # tun_flags field of this OVS_ACTION_ATTR_ADD_MPLS argument.
1874
+ class AddMpls < Attribute
1875
+ TYPE: ::Integer
1876
+
1877
+ NAME: ::Symbol
1878
+
1879
+ # @private
1880
+ ORDER: ::Integer
1881
+
1882
+ # @private
1883
+ DATATYPE: untyped
1884
+ end
1885
+
1886
+ class DecTtl < Attribute
1887
+ TYPE: ::Integer
1888
+
1889
+ NAME: ::Symbol
1890
+
1891
+ # @private
1892
+ ORDER: ::Integer
1893
+ end
1894
+
1895
+ # Sends a packet sample to psample for external observation.
1896
+ class Psample < Attribute
1897
+ TYPE: ::Integer
1898
+
1899
+ NAME: ::Symbol
1900
+
1901
+ # @private
1902
+ ORDER: ::Integer
1903
+ end
1904
+
1905
+ # @private
1906
+ BY_NAME: Hash[::Symbol, Attribute]
1907
+
1908
+ # @private
1909
+ BY_TYPE: Hash[::Integer, Attribute]
1910
+
1911
+ # ovs port number in datapath
1912
+ # @rbs return: ::Integer
1913
+ # @return [Integer]
1914
+ # @see Output
1915
+ def output: () -> ::Integer
1916
+
1917
+ # @rbs return: AttributeSets::UserspaceAttrs
1918
+ # @return [AttributeSets::UserspaceAttrs]
1919
+ # @see Userspace
1920
+ def userspace: () -> AttributeSets::UserspaceAttrs
1921
+
1922
+ # Replaces the contents of an existing header. The single nested
1923
+ # attribute specifies a header to modify and its value.
1924
+ # @rbs return: AttributeSets::KeyAttrs
1925
+ # @return [AttributeSets::KeyAttrs]
1926
+ # @see Set
1927
+ def set: () -> AttributeSets::KeyAttrs
1928
+
1929
+ # Push a new outermost 802.1Q or 802.1ad header onto the packet.
1930
+ # @rbs return: Structs::OvsActionPushVlan
1931
+ # @return [Structs::OvsActionPushVlan]
1932
+ # @see PushVlan
1933
+ def push_vlan: () -> Structs::OvsActionPushVlan
1934
+
1935
+ # Pop the outermost 802.1Q or 802.1ad header from the packet.
1936
+ # @rbs return: ::Integer
1937
+ # @return [Integer]
1938
+ # @see PopVlan
1939
+ def pop_vlan: () -> ::Integer
1940
+
1941
+ # Probabilistically executes actions, as specified in the nested
1942
+ # attributes.
1943
+ # @rbs return: AttributeSets::SampleAttrs
1944
+ # @return [AttributeSets::SampleAttrs]
1945
+ # @see Sample
1946
+ def sample: () -> AttributeSets::SampleAttrs
1947
+
1948
+ # recirc id
1949
+ # @rbs return: ::Integer
1950
+ # @return [Integer]
1951
+ # @see Recirc
1952
+ def recirc: () -> ::Integer
1953
+
1954
+ # @rbs return: Structs::OvsActionHash
1955
+ # @return [Structs::OvsActionHash]
1956
+ # @see Hash
1957
+ def hash: () -> Structs::OvsActionHash
1958
+
1959
+ # Push a new MPLS label stack entry onto the top of the packets MPLS
1960
+ # label stack. Set the ethertype of the encapsulating frame to either
1961
+ # ETH_P_MPLS_UC or ETH_P_MPLS_MC to indicate the new packet contents.
1962
+ # @rbs return: Structs::OvsActionPushMpls
1963
+ # @return [Structs::OvsActionPushMpls]
1964
+ # @see PushMpls
1965
+ def push_mpls: () -> Structs::OvsActionPushMpls
1966
+
1967
+ # ethertype
1968
+ # @rbs return: ::Integer
1969
+ # @return [Integer]
1970
+ # @see PopMpls
1971
+ def pop_mpls: () -> ::Integer
1972
+
1973
+ # Replaces the contents of an existing header. A nested attribute
1974
+ # specifies a header to modify, its value, and a mask. For every bit set
1975
+ # in the mask, the corresponding bit value is copied from the value to
1976
+ # the packet header field, rest of the bits are left unchanged. The
1977
+ # non-masked value bits must be passed in as zeroes. Masking is not
1978
+ # supported for the OVS_KEY_ATTR_TUNNEL attribute.
1979
+ # @rbs return: AttributeSets::KeyAttrs
1980
+ # @return [AttributeSets::KeyAttrs]
1981
+ # @see SetMasked
1982
+ def set_masked: () -> AttributeSets::KeyAttrs
1983
+
1984
+ # Track the connection. Populate the conntrack-related entries
1985
+ # in the flow key.
1986
+ # @rbs return: AttributeSets::CtAttrs
1987
+ # @return [AttributeSets::CtAttrs]
1988
+ # @see Ct
1989
+ def ct: () -> AttributeSets::CtAttrs
1990
+
1991
+ # struct ovs_action_trunc is a u32 max length
1992
+ # @rbs return: ::Integer
1993
+ # @return [Integer]
1994
+ # @see Trunc
1995
+ def trunc: () -> ::Integer
1996
+
1997
+ # struct ovs_action_push_eth
1998
+ # @rbs return: ::String
1999
+ # @return [String]
2000
+ # @see PushEth
2001
+ def push_eth: () -> ::String
2002
+
2003
+ # @rbs return: ::Integer
2004
+ # @return [Integer]
2005
+ # @see PopEth
2006
+ def pop_eth: () -> ::Integer
2007
+
2008
+ # @rbs return: ::Integer
2009
+ # @return [Integer]
2010
+ # @see CtClear
2011
+ def ct_clear: () -> ::Integer
2012
+
2013
+ # Push NSH header to the packet.
2014
+ # @rbs return: AttributeSets::OvsNshKeyAttrs
2015
+ # @return [AttributeSets::OvsNshKeyAttrs]
2016
+ # @see PushNsh
2017
+ def push_nsh: () -> AttributeSets::OvsNshKeyAttrs
2018
+
2019
+ # Pop the outermost NSH header off the packet.
2020
+ # @rbs return: ::Integer
2021
+ # @return [Integer]
2022
+ # @see PopNsh
2023
+ def pop_nsh: () -> ::Integer
2024
+
2025
+ # Run packet through a meter, which may drop the packet, or modify the
2026
+ # packet (e.g., change the DSCP field)
2027
+ # @rbs return: ::Integer
2028
+ # @return [Integer]
2029
+ # @see Meter
2030
+ def meter: () -> ::Integer
2031
+
2032
+ # Make a copy of the packet and execute a list of actions without
2033
+ # affecting the original packet and key.
2034
+ # @rbs return: AttributeSets::ActionAttrs
2035
+ # @return [AttributeSets::ActionAttrs]
2036
+ # @see Clone
2037
+ def clone: () -> AttributeSets::ActionAttrs
2038
+
2039
+ # Check the packet length and execute a set of actions if greater than
2040
+ # the specified packet length, else execute another set of actions.
2041
+ # @rbs return: AttributeSets::CheckPktLenAttrs
2042
+ # @return [AttributeSets::CheckPktLenAttrs]
2043
+ # @see CheckPktLen
2044
+ def check_pkt_len: () -> AttributeSets::CheckPktLenAttrs
2045
+
2046
+ # Push a new MPLS label stack entry at the start of the packet or at the
2047
+ # start of the l3 header depending on the value of l3 tunnel flag in the
2048
+ # tun_flags field of this OVS_ACTION_ATTR_ADD_MPLS argument.
2049
+ # @rbs return: Structs::OvsActionAddMpls
2050
+ # @return [Structs::OvsActionAddMpls]
2051
+ # @see AddMpls
2052
+ def add_mpls: () -> Structs::OvsActionAddMpls
2053
+
2054
+ # @rbs return: AttributeSets::DecTtlAttrs
2055
+ # @return [AttributeSets::DecTtlAttrs]
2056
+ # @see DecTtl
2057
+ def dec_ttl: () -> AttributeSets::DecTtlAttrs
2058
+
2059
+ # Sends a packet sample to psample for external observation.
2060
+ # @rbs return: AttributeSets::PsampleAttrs
2061
+ # @return [AttributeSets::PsampleAttrs]
2062
+ # @see Psample
2063
+ def psample: () -> AttributeSets::PsampleAttrs
2064
+
2065
+ # Looks up Attribute class by name.
2066
+ # @rbs name: Symbol
2067
+ # @rbs return: Attribute
2068
+ # @param [Symbol] name
2069
+ # @return [Attribute]
2070
+ def self.by_name: (Symbol name) -> Attribute
2071
+
2072
+ # Looks up Attribute class by type value.
2073
+ # @rbs type: Integer
2074
+ # @rbs return: Attribute
2075
+ # @param [Integer] type
2076
+ # @return [Attribute]
2077
+ def self.by_type: (Integer type) -> Attribute
2078
+ end
2079
+
2080
+ class TunnelKeyAttrs < ::Nl::AttributeSet
2081
+ # Abstract class
2082
+ class Attribute < ::Nl::AttributeSet::Attribute
2083
+ end
2084
+
2085
+ class Id < Attribute
2086
+ TYPE: ::Integer
2087
+
2088
+ NAME: ::Symbol
2089
+
2090
+ # @private
2091
+ ORDER: ::Integer
2092
+
2093
+ # @private
2094
+ DATATYPE: untyped
2095
+ end
2096
+
2097
+ class Ipv4Src < Attribute
2098
+ TYPE: ::Integer
2099
+
2100
+ NAME: ::Symbol
2101
+
2102
+ # @private
2103
+ ORDER: ::Integer
2104
+
2105
+ # @private
2106
+ DATATYPE: untyped
2107
+ end
2108
+
2109
+ class Ipv4Dst < Attribute
2110
+ TYPE: ::Integer
2111
+
2112
+ NAME: ::Symbol
2113
+
2114
+ # @private
2115
+ ORDER: ::Integer
2116
+
2117
+ # @private
2118
+ DATATYPE: untyped
2119
+ end
2120
+
2121
+ class Tos < Attribute
2122
+ TYPE: ::Integer
2123
+
2124
+ NAME: ::Symbol
2125
+
2126
+ # @private
2127
+ ORDER: ::Integer
2128
+
2129
+ # @private
2130
+ DATATYPE: untyped
2131
+ end
2132
+
2133
+ class Ttl < Attribute
2134
+ TYPE: ::Integer
2135
+
2136
+ NAME: ::Symbol
2137
+
2138
+ # @private
2139
+ ORDER: ::Integer
2140
+
2141
+ # @private
2142
+ DATATYPE: untyped
2143
+ end
2144
+
2145
+ class DontFragment < Attribute
2146
+ TYPE: ::Integer
2147
+
2148
+ NAME: ::Symbol
2149
+
2150
+ # @private
2151
+ ORDER: ::Integer
2152
+
2153
+ # @private
2154
+ DATATYPE: untyped
2155
+ end
2156
+
2157
+ class Csum < Attribute
2158
+ TYPE: ::Integer
2159
+
2160
+ NAME: ::Symbol
2161
+
2162
+ # @private
2163
+ ORDER: ::Integer
2164
+
2165
+ # @private
2166
+ DATATYPE: untyped
2167
+ end
2168
+
2169
+ class Oam < Attribute
2170
+ TYPE: ::Integer
2171
+
2172
+ NAME: ::Symbol
2173
+
2174
+ # @private
2175
+ ORDER: ::Integer
2176
+
2177
+ # @private
2178
+ DATATYPE: untyped
2179
+ end
2180
+
2181
+ class GeneveOpts < Attribute
2182
+ TYPE: ::Integer
2183
+
2184
+ NAME: ::Symbol
2185
+
2186
+ # @private
2187
+ ORDER: ::Integer
2188
+
2189
+ # @private
2190
+ DATATYPE: untyped
2191
+ end
2192
+
2193
+ class TpSrc < Attribute
2194
+ TYPE: ::Integer
2195
+
2196
+ NAME: ::Symbol
2197
+
2198
+ # @private
2199
+ ORDER: ::Integer
2200
+
2201
+ # @private
2202
+ DATATYPE: untyped
2203
+ end
2204
+
2205
+ class TpDst < Attribute
2206
+ TYPE: ::Integer
2207
+
2208
+ NAME: ::Symbol
2209
+
2210
+ # @private
2211
+ ORDER: ::Integer
2212
+
2213
+ # @private
2214
+ DATATYPE: untyped
2215
+ end
2216
+
2217
+ class VxlanOpts < Attribute
2218
+ TYPE: ::Integer
2219
+
2220
+ NAME: ::Symbol
2221
+
2222
+ # @private
2223
+ ORDER: ::Integer
2224
+ end
2225
+
2226
+ # struct in6_addr source IPv6 address
2227
+ class Ipv6Src < Attribute
2228
+ TYPE: ::Integer
2229
+
2230
+ NAME: ::Symbol
2231
+
2232
+ # @private
2233
+ ORDER: ::Integer
2234
+
2235
+ # @private
2236
+ DATATYPE: untyped
2237
+ end
2238
+
2239
+ # struct in6_addr destination IPv6 address
2240
+ class Ipv6Dst < Attribute
2241
+ TYPE: ::Integer
2242
+
2243
+ NAME: ::Symbol
2244
+
2245
+ # @private
2246
+ ORDER: ::Integer
2247
+
2248
+ # @private
2249
+ DATATYPE: untyped
2250
+ end
2251
+
2252
+ class Pad < Attribute
2253
+ TYPE: ::Integer
2254
+
2255
+ NAME: ::Symbol
2256
+
2257
+ # @private
2258
+ ORDER: ::Integer
2259
+
2260
+ # @private
2261
+ DATATYPE: untyped
2262
+ end
2263
+
2264
+ # struct erspan_metadata
2265
+ class ErspanOpts < Attribute
2266
+ TYPE: ::Integer
2267
+
2268
+ NAME: ::Symbol
2269
+
2270
+ # @private
2271
+ ORDER: ::Integer
2272
+
2273
+ # @private
2274
+ DATATYPE: untyped
2275
+ end
2276
+
2277
+ class Ipv4InfoBridge < Attribute
2278
+ TYPE: ::Integer
2279
+
2280
+ NAME: ::Symbol
2281
+
2282
+ # @private
2283
+ ORDER: ::Integer
2284
+
2285
+ # @private
2286
+ DATATYPE: untyped
2287
+ end
2288
+
2289
+ # @private
2290
+ BY_NAME: Hash[::Symbol, Attribute]
2291
+
2292
+ # @private
2293
+ BY_TYPE: Hash[::Integer, Attribute]
2294
+
2295
+ # @rbs return: ::Integer
2296
+ # @return [Integer]
2297
+ # @see Id
2298
+ def id: () -> ::Integer
2299
+
2300
+ # @rbs return: ::Integer
2301
+ # @return [Integer]
2302
+ # @see Ipv4Src
2303
+ def ipv4_src: () -> ::Integer
2304
+
2305
+ # @rbs return: ::Integer
2306
+ # @return [Integer]
2307
+ # @see Ipv4Dst
2308
+ def ipv4_dst: () -> ::Integer
2309
+
2310
+ # @rbs return: ::Integer
2311
+ # @return [Integer]
2312
+ # @see Tos
2313
+ def tos: () -> ::Integer
2314
+
2315
+ # @rbs return: ::Integer
2316
+ # @return [Integer]
2317
+ # @see Ttl
2318
+ def ttl: () -> ::Integer
2319
+
2320
+ # @rbs return: ::Integer
2321
+ # @return [Integer]
2322
+ # @see DontFragment
2323
+ def dont_fragment: () -> ::Integer
2324
+
2325
+ # @rbs return: ::Integer
2326
+ # @return [Integer]
2327
+ # @see Csum
2328
+ def csum: () -> ::Integer
2329
+
2330
+ # @rbs return: ::Integer
2331
+ # @return [Integer]
2332
+ # @see Oam
2333
+ def oam: () -> ::Integer
2334
+
2335
+ # @rbs return: ::Array[::Integer]
2336
+ # @return [Array<Integer>]
2337
+ # @see GeneveOpts
2338
+ def geneve_opts: () -> ::Array[::Integer]
2339
+
2340
+ # @rbs return: ::Integer
2341
+ # @return [Integer]
2342
+ # @see TpSrc
2343
+ def tp_src: () -> ::Integer
2344
+
2345
+ # @rbs return: ::Integer
2346
+ # @return [Integer]
2347
+ # @see TpDst
2348
+ def tp_dst: () -> ::Integer
2349
+
2350
+ # @rbs return: AttributeSets::VxlanExtAttrs
2351
+ # @return [AttributeSets::VxlanExtAttrs]
2352
+ # @see VxlanOpts
2353
+ def vxlan_opts: () -> AttributeSets::VxlanExtAttrs
2354
+
2355
+ # struct in6_addr source IPv6 address
2356
+ # @rbs return: ::String
2357
+ # @return [String]
2358
+ # @see Ipv6Src
2359
+ def ipv6_src: () -> ::String
2360
+
2361
+ # struct in6_addr destination IPv6 address
2362
+ # @rbs return: ::String
2363
+ # @return [String]
2364
+ # @see Ipv6Dst
2365
+ def ipv6_dst: () -> ::String
2366
+
2367
+ # @rbs return: ::String
2368
+ # @return [String]
2369
+ # @see Pad
2370
+ def pad: () -> ::String
2371
+
2372
+ # struct erspan_metadata
2373
+ # @rbs return: ::String
2374
+ # @return [String]
2375
+ # @see ErspanOpts
2376
+ def erspan_opts: () -> ::String
2377
+
2378
+ # @rbs return: ::Integer
2379
+ # @return [Integer]
2380
+ # @see Ipv4InfoBridge
2381
+ def ipv4_info_bridge: () -> ::Integer
2382
+
2383
+ # Looks up Attribute class by name.
2384
+ # @rbs name: Symbol
2385
+ # @rbs return: Attribute
2386
+ # @param [Symbol] name
2387
+ # @return [Attribute]
2388
+ def self.by_name: (Symbol name) -> Attribute
2389
+
2390
+ # Looks up Attribute class by type value.
2391
+ # @rbs type: Integer
2392
+ # @rbs return: Attribute
2393
+ # @param [Integer] type
2394
+ # @return [Attribute]
2395
+ def self.by_type: (Integer type) -> Attribute
2396
+ end
2397
+
2398
+ class CheckPktLenAttrs < ::Nl::AttributeSet
2399
+ # Abstract class
2400
+ class Attribute < ::Nl::AttributeSet::Attribute
2401
+ end
2402
+
2403
+ class PktLen < Attribute
2404
+ TYPE: ::Integer
2405
+
2406
+ NAME: ::Symbol
2407
+
2408
+ # @private
2409
+ ORDER: ::Integer
2410
+
2411
+ # @private
2412
+ DATATYPE: untyped
2413
+ end
2414
+
2415
+ class ActionsIfGreater < Attribute
2416
+ TYPE: ::Integer
2417
+
2418
+ NAME: ::Symbol
2419
+
2420
+ # @private
2421
+ ORDER: ::Integer
2422
+ end
2423
+
2424
+ class ActionsIfLessEqual < Attribute
2425
+ TYPE: ::Integer
2426
+
2427
+ NAME: ::Symbol
2428
+
2429
+ # @private
2430
+ ORDER: ::Integer
2431
+ end
2432
+
2433
+ # @private
2434
+ BY_NAME: Hash[::Symbol, Attribute]
2435
+
2436
+ # @private
2437
+ BY_TYPE: Hash[::Integer, Attribute]
2438
+
2439
+ # @rbs return: ::Integer
2440
+ # @return [Integer]
2441
+ # @see PktLen
2442
+ def pkt_len: () -> ::Integer
2443
+
2444
+ # @rbs return: AttributeSets::ActionAttrs
2445
+ # @return [AttributeSets::ActionAttrs]
2446
+ # @see ActionsIfGreater
2447
+ def actions_if_greater: () -> AttributeSets::ActionAttrs
2448
+
2449
+ # @rbs return: AttributeSets::ActionAttrs
2450
+ # @return [AttributeSets::ActionAttrs]
2451
+ # @see ActionsIfLessEqual
2452
+ def actions_if_less_equal: () -> AttributeSets::ActionAttrs
2453
+
2454
+ # Looks up Attribute class by name.
2455
+ # @rbs name: Symbol
2456
+ # @rbs return: Attribute
2457
+ # @param [Symbol] name
2458
+ # @return [Attribute]
2459
+ def self.by_name: (Symbol name) -> Attribute
2460
+
2461
+ # Looks up Attribute class by type value.
2462
+ # @rbs type: Integer
2463
+ # @rbs return: Attribute
2464
+ # @param [Integer] type
2465
+ # @return [Attribute]
2466
+ def self.by_type: (Integer type) -> Attribute
2467
+ end
2468
+
2469
+ class SampleAttrs < ::Nl::AttributeSet
2470
+ # Abstract class
2471
+ class Attribute < ::Nl::AttributeSet::Attribute
2472
+ end
2473
+
2474
+ class Probability < Attribute
2475
+ TYPE: ::Integer
2476
+
2477
+ NAME: ::Symbol
2478
+
2479
+ # @private
2480
+ ORDER: ::Integer
2481
+
2482
+ # @private
2483
+ DATATYPE: untyped
2484
+ end
2485
+
2486
+ class Actions < Attribute
2487
+ TYPE: ::Integer
2488
+
2489
+ NAME: ::Symbol
2490
+
2491
+ # @private
2492
+ ORDER: ::Integer
2493
+ end
2494
+
2495
+ # @private
2496
+ BY_NAME: Hash[::Symbol, Attribute]
2497
+
2498
+ # @private
2499
+ BY_TYPE: Hash[::Integer, Attribute]
2500
+
2501
+ # @rbs return: ::Integer
2502
+ # @return [Integer]
2503
+ # @see Probability
2504
+ def probability: () -> ::Integer
2505
+
2506
+ # @rbs return: AttributeSets::ActionAttrs
2507
+ # @return [AttributeSets::ActionAttrs]
2508
+ # @see Actions
2509
+ def actions: () -> AttributeSets::ActionAttrs
2510
+
2511
+ # Looks up Attribute class by name.
2512
+ # @rbs name: Symbol
2513
+ # @rbs return: Attribute
2514
+ # @param [Symbol] name
2515
+ # @return [Attribute]
2516
+ def self.by_name: (Symbol name) -> Attribute
2517
+
2518
+ # Looks up Attribute class by type value.
2519
+ # @rbs type: Integer
2520
+ # @rbs return: Attribute
2521
+ # @param [Integer] type
2522
+ # @return [Attribute]
2523
+ def self.by_type: (Integer type) -> Attribute
2524
+ end
2525
+
2526
+ class UserspaceAttrs < ::Nl::AttributeSet
2527
+ # Abstract class
2528
+ class Attribute < ::Nl::AttributeSet::Attribute
2529
+ end
2530
+
2531
+ class Pid < Attribute
2532
+ TYPE: ::Integer
2533
+
2534
+ NAME: ::Symbol
2535
+
2536
+ # @private
2537
+ ORDER: ::Integer
2538
+
2539
+ # @private
2540
+ DATATYPE: untyped
2541
+ end
2542
+
2543
+ class Userdata < Attribute
2544
+ TYPE: ::Integer
2545
+
2546
+ NAME: ::Symbol
2547
+
2548
+ # @private
2549
+ ORDER: ::Integer
2550
+
2551
+ # @private
2552
+ DATATYPE: untyped
2553
+ end
2554
+
2555
+ class EgressTunPort < Attribute
2556
+ TYPE: ::Integer
2557
+
2558
+ NAME: ::Symbol
2559
+
2560
+ # @private
2561
+ ORDER: ::Integer
2562
+
2563
+ # @private
2564
+ DATATYPE: untyped
2565
+ end
2566
+
2567
+ class Actions < Attribute
2568
+ TYPE: ::Integer
2569
+
2570
+ NAME: ::Symbol
2571
+
2572
+ # @private
2573
+ ORDER: ::Integer
2574
+
2575
+ # @private
2576
+ DATATYPE: untyped
2577
+ end
2578
+
2579
+ # @private
2580
+ BY_NAME: Hash[::Symbol, Attribute]
2581
+
2582
+ # @private
2583
+ BY_TYPE: Hash[::Integer, Attribute]
2584
+
2585
+ # @rbs return: ::Integer
2586
+ # @return [Integer]
2587
+ # @see Pid
2588
+ def pid: () -> ::Integer
2589
+
2590
+ # @rbs return: ::String
2591
+ # @return [String]
2592
+ # @see Userdata
2593
+ def userdata: () -> ::String
2594
+
2595
+ # @rbs return: ::Integer
2596
+ # @return [Integer]
2597
+ # @see EgressTunPort
2598
+ def egress_tun_port: () -> ::Integer
2599
+
2600
+ # @rbs return: ::Integer
2601
+ # @return [Integer]
2602
+ # @see Actions
2603
+ def actions: () -> ::Integer
2604
+
2605
+ # Looks up Attribute class by name.
2606
+ # @rbs name: Symbol
2607
+ # @rbs return: Attribute
2608
+ # @param [Symbol] name
2609
+ # @return [Attribute]
2610
+ def self.by_name: (Symbol name) -> Attribute
2611
+
2612
+ # Looks up Attribute class by type value.
2613
+ # @rbs type: Integer
2614
+ # @rbs return: Attribute
2615
+ # @param [Integer] type
2616
+ # @return [Attribute]
2617
+ def self.by_type: (Integer type) -> Attribute
2618
+ end
2619
+
2620
+ class OvsNshKeyAttrs < ::Nl::AttributeSet
2621
+ # Abstract class
2622
+ class Attribute < ::Nl::AttributeSet::Attribute
2623
+ end
2624
+
2625
+ class Base < Attribute
2626
+ TYPE: ::Integer
2627
+
2628
+ NAME: ::Symbol
2629
+
2630
+ # @private
2631
+ ORDER: ::Integer
2632
+
2633
+ # @private
2634
+ DATATYPE: untyped
2635
+ end
2636
+
2637
+ class Md1 < Attribute
2638
+ TYPE: ::Integer
2639
+
2640
+ NAME: ::Symbol
2641
+
2642
+ # @private
2643
+ ORDER: ::Integer
2644
+
2645
+ # @private
2646
+ DATATYPE: untyped
2647
+ end
2648
+
2649
+ class Md2 < Attribute
2650
+ TYPE: ::Integer
2651
+
2652
+ NAME: ::Symbol
2653
+
2654
+ # @private
2655
+ ORDER: ::Integer
2656
+
2657
+ # @private
2658
+ DATATYPE: untyped
2659
+ end
2660
+
2661
+ # @private
2662
+ BY_NAME: Hash[::Symbol, Attribute]
2663
+
2664
+ # @private
2665
+ BY_TYPE: Hash[::Integer, Attribute]
2666
+
2667
+ # @rbs return: ::String
2668
+ # @return [String]
2669
+ # @see Base
2670
+ def base: () -> ::String
2671
+
2672
+ # @rbs return: ::String
2673
+ # @return [String]
2674
+ # @see Md1
2675
+ def md1: () -> ::String
2676
+
2677
+ # @rbs return: ::String
2678
+ # @return [String]
2679
+ # @see Md2
2680
+ def md2: () -> ::String
2681
+
2682
+ # Looks up Attribute class by name.
2683
+ # @rbs name: Symbol
2684
+ # @rbs return: Attribute
2685
+ # @param [Symbol] name
2686
+ # @return [Attribute]
2687
+ def self.by_name: (Symbol name) -> Attribute
2688
+
2689
+ # Looks up Attribute class by type value.
2690
+ # @rbs type: Integer
2691
+ # @rbs return: Attribute
2692
+ # @param [Integer] type
2693
+ # @return [Attribute]
2694
+ def self.by_type: (Integer type) -> Attribute
2695
+ end
2696
+
2697
+ class CtAttrs < ::Nl::AttributeSet
2698
+ # Abstract class
2699
+ class Attribute < ::Nl::AttributeSet::Attribute
2700
+ end
2701
+
2702
+ class Commit < Attribute
2703
+ TYPE: ::Integer
2704
+
2705
+ NAME: ::Symbol
2706
+
2707
+ # @private
2708
+ ORDER: ::Integer
2709
+
2710
+ # @private
2711
+ DATATYPE: untyped
2712
+ end
2713
+
2714
+ class Zone < Attribute
2715
+ TYPE: ::Integer
2716
+
2717
+ NAME: ::Symbol
2718
+
2719
+ # @private
2720
+ ORDER: ::Integer
2721
+
2722
+ # @private
2723
+ DATATYPE: untyped
2724
+ end
2725
+
2726
+ class Mark < Attribute
2727
+ TYPE: ::Integer
2728
+
2729
+ NAME: ::Symbol
2730
+
2731
+ # @private
2732
+ ORDER: ::Integer
2733
+
2734
+ # @private
2735
+ DATATYPE: untyped
2736
+ end
2737
+
2738
+ class Labels < Attribute
2739
+ TYPE: ::Integer
2740
+
2741
+ NAME: ::Symbol
2742
+
2743
+ # @private
2744
+ ORDER: ::Integer
2745
+
2746
+ # @private
2747
+ DATATYPE: untyped
2748
+ end
2749
+
2750
+ class Helper < Attribute
2751
+ TYPE: ::Integer
2752
+
2753
+ NAME: ::Symbol
2754
+
2755
+ # @private
2756
+ ORDER: ::Integer
2757
+
2758
+ # @private
2759
+ DATATYPE: untyped
2760
+ end
2761
+
2762
+ class Nat < Attribute
2763
+ TYPE: ::Integer
2764
+
2765
+ NAME: ::Symbol
2766
+
2767
+ # @private
2768
+ ORDER: ::Integer
2769
+ end
2770
+
2771
+ class ForceCommit < Attribute
2772
+ TYPE: ::Integer
2773
+
2774
+ NAME: ::Symbol
2775
+
2776
+ # @private
2777
+ ORDER: ::Integer
2778
+
2779
+ # @private
2780
+ DATATYPE: untyped
2781
+ end
2782
+
2783
+ class Eventmask < Attribute
2784
+ TYPE: ::Integer
2785
+
2786
+ NAME: ::Symbol
2787
+
2788
+ # @private
2789
+ ORDER: ::Integer
2790
+
2791
+ # @private
2792
+ DATATYPE: untyped
2793
+ end
2794
+
2795
+ class Timeout < Attribute
2796
+ TYPE: ::Integer
2797
+
2798
+ NAME: ::Symbol
2799
+
2800
+ # @private
2801
+ ORDER: ::Integer
2802
+
2803
+ # @private
2804
+ DATATYPE: untyped
2805
+ end
2806
+
2807
+ # @private
2808
+ BY_NAME: Hash[::Symbol, Attribute]
2809
+
2810
+ # @private
2811
+ BY_TYPE: Hash[::Integer, Attribute]
2812
+
2813
+ # @rbs return: ::Integer
2814
+ # @return [Integer]
2815
+ # @see Commit
2816
+ def commit: () -> ::Integer
2817
+
2818
+ # @rbs return: ::Integer
2819
+ # @return [Integer]
2820
+ # @see Zone
2821
+ def zone: () -> ::Integer
2822
+
2823
+ # @rbs return: ::String
2824
+ # @return [String]
2825
+ # @see Mark
2826
+ def mark: () -> ::String
2827
+
2828
+ # @rbs return: ::String
2829
+ # @return [String]
2830
+ # @see Labels
2831
+ def labels: () -> ::String
2832
+
2833
+ # @rbs return: ::String
2834
+ # @return [String]
2835
+ # @see Helper
2836
+ def helper: () -> ::String
2837
+
2838
+ # @rbs return: AttributeSets::NatAttrs
2839
+ # @return [AttributeSets::NatAttrs]
2840
+ # @see Nat
2841
+ def nat: () -> AttributeSets::NatAttrs
2842
+
2843
+ # @rbs return: ::Integer
2844
+ # @return [Integer]
2845
+ # @see ForceCommit
2846
+ def force_commit: () -> ::Integer
2847
+
2848
+ # @rbs return: ::Integer
2849
+ # @return [Integer]
2850
+ # @see Eventmask
2851
+ def eventmask: () -> ::Integer
2852
+
2853
+ # @rbs return: ::String
2854
+ # @return [String]
2855
+ # @see Timeout
2856
+ def timeout: () -> ::String
2857
+
2858
+ # Looks up Attribute class by name.
2859
+ # @rbs name: Symbol
2860
+ # @rbs return: Attribute
2861
+ # @param [Symbol] name
2862
+ # @return [Attribute]
2863
+ def self.by_name: (Symbol name) -> Attribute
2864
+
2865
+ # Looks up Attribute class by type value.
2866
+ # @rbs type: Integer
2867
+ # @rbs return: Attribute
2868
+ # @param [Integer] type
2869
+ # @return [Attribute]
2870
+ def self.by_type: (Integer type) -> Attribute
2871
+ end
2872
+
2873
+ class NatAttrs < ::Nl::AttributeSet
2874
+ # Abstract class
2875
+ class Attribute < ::Nl::AttributeSet::Attribute
2876
+ end
2877
+
2878
+ class Src < Attribute
2879
+ TYPE: ::Integer
2880
+
2881
+ NAME: ::Symbol
2882
+
2883
+ # @private
2884
+ ORDER: ::Integer
2885
+
2886
+ # @private
2887
+ DATATYPE: untyped
2888
+ end
2889
+
2890
+ class Dst < Attribute
2891
+ TYPE: ::Integer
2892
+
2893
+ NAME: ::Symbol
2894
+
2895
+ # @private
2896
+ ORDER: ::Integer
2897
+
2898
+ # @private
2899
+ DATATYPE: untyped
2900
+ end
2901
+
2902
+ class IpMin < Attribute
2903
+ TYPE: ::Integer
2904
+
2905
+ NAME: ::Symbol
2906
+
2907
+ # @private
2908
+ ORDER: ::Integer
2909
+
2910
+ # @private
2911
+ DATATYPE: untyped
2912
+ end
2913
+
2914
+ class IpMax < Attribute
2915
+ TYPE: ::Integer
2916
+
2917
+ NAME: ::Symbol
2918
+
2919
+ # @private
2920
+ ORDER: ::Integer
2921
+
2922
+ # @private
2923
+ DATATYPE: untyped
2924
+ end
2925
+
2926
+ class ProtoMin < Attribute
2927
+ TYPE: ::Integer
2928
+
2929
+ NAME: ::Symbol
2930
+
2931
+ # @private
2932
+ ORDER: ::Integer
2933
+
2934
+ # @private
2935
+ DATATYPE: untyped
2936
+ end
2937
+
2938
+ class ProtoMax < Attribute
2939
+ TYPE: ::Integer
2940
+
2941
+ NAME: ::Symbol
2942
+
2943
+ # @private
2944
+ ORDER: ::Integer
2945
+
2946
+ # @private
2947
+ DATATYPE: untyped
2948
+ end
2949
+
2950
+ class Persistent < Attribute
2951
+ TYPE: ::Integer
2952
+
2953
+ NAME: ::Symbol
2954
+
2955
+ # @private
2956
+ ORDER: ::Integer
2957
+
2958
+ # @private
2959
+ DATATYPE: untyped
2960
+ end
2961
+
2962
+ class ProtoHash < Attribute
2963
+ TYPE: ::Integer
2964
+
2965
+ NAME: ::Symbol
2966
+
2967
+ # @private
2968
+ ORDER: ::Integer
2969
+
2970
+ # @private
2971
+ DATATYPE: untyped
2972
+ end
2973
+
2974
+ class ProtoRandom < Attribute
2975
+ TYPE: ::Integer
2976
+
2977
+ NAME: ::Symbol
2978
+
2979
+ # @private
2980
+ ORDER: ::Integer
2981
+
2982
+ # @private
2983
+ DATATYPE: untyped
2984
+ end
2985
+
2986
+ # @private
2987
+ BY_NAME: Hash[::Symbol, Attribute]
2988
+
2989
+ # @private
2990
+ BY_TYPE: Hash[::Integer, Attribute]
2991
+
2992
+ # @rbs return: ::Integer
2993
+ # @return [Integer]
2994
+ # @see Src
2995
+ def src: () -> ::Integer
2996
+
2997
+ # @rbs return: ::Integer
2998
+ # @return [Integer]
2999
+ # @see Dst
3000
+ def dst: () -> ::Integer
3001
+
3002
+ # @rbs return: ::String
3003
+ # @return [String]
3004
+ # @see IpMin
3005
+ def ip_min: () -> ::String
3006
+
3007
+ # @rbs return: ::String
3008
+ # @return [String]
3009
+ # @see IpMax
3010
+ def ip_max: () -> ::String
3011
+
3012
+ # @rbs return: ::Integer
3013
+ # @return [Integer]
3014
+ # @see ProtoMin
3015
+ def proto_min: () -> ::Integer
3016
+
3017
+ # @rbs return: ::Integer
3018
+ # @return [Integer]
3019
+ # @see ProtoMax
3020
+ def proto_max: () -> ::Integer
3021
+
3022
+ # @rbs return: ::Integer
3023
+ # @return [Integer]
3024
+ # @see Persistent
3025
+ def persistent: () -> ::Integer
3026
+
3027
+ # @rbs return: ::Integer
3028
+ # @return [Integer]
3029
+ # @see ProtoHash
3030
+ def proto_hash: () -> ::Integer
3031
+
3032
+ # @rbs return: ::Integer
3033
+ # @return [Integer]
3034
+ # @see ProtoRandom
3035
+ def proto_random: () -> ::Integer
3036
+
3037
+ # Looks up Attribute class by name.
3038
+ # @rbs name: Symbol
3039
+ # @rbs return: Attribute
3040
+ # @param [Symbol] name
3041
+ # @return [Attribute]
3042
+ def self.by_name: (Symbol name) -> Attribute
3043
+
3044
+ # Looks up Attribute class by type value.
3045
+ # @rbs type: Integer
3046
+ # @rbs return: Attribute
3047
+ # @param [Integer] type
3048
+ # @return [Attribute]
3049
+ def self.by_type: (Integer type) -> Attribute
3050
+ end
3051
+
3052
+ class DecTtlAttrs < ::Nl::AttributeSet
3053
+ # Abstract class
3054
+ class Attribute < ::Nl::AttributeSet::Attribute
3055
+ end
3056
+
3057
+ class Action < Attribute
3058
+ TYPE: ::Integer
3059
+
3060
+ NAME: ::Symbol
3061
+
3062
+ # @private
3063
+ ORDER: ::Integer
3064
+ end
3065
+
3066
+ # @private
3067
+ BY_NAME: Hash[::Symbol, Attribute]
3068
+
3069
+ # @private
3070
+ BY_TYPE: Hash[::Integer, Attribute]
3071
+
3072
+ # @rbs return: AttributeSets::ActionAttrs
3073
+ # @return [AttributeSets::ActionAttrs]
3074
+ # @see Action
3075
+ def action: () -> AttributeSets::ActionAttrs
3076
+
3077
+ # Looks up Attribute class by name.
3078
+ # @rbs name: Symbol
3079
+ # @rbs return: Attribute
3080
+ # @param [Symbol] name
3081
+ # @return [Attribute]
3082
+ def self.by_name: (Symbol name) -> Attribute
3083
+
3084
+ # Looks up Attribute class by type value.
3085
+ # @rbs type: Integer
3086
+ # @rbs return: Attribute
3087
+ # @param [Integer] type
3088
+ # @return [Attribute]
3089
+ def self.by_type: (Integer type) -> Attribute
3090
+ end
3091
+
3092
+ class VxlanExtAttrs < ::Nl::AttributeSet
3093
+ # Abstract class
3094
+ class Attribute < ::Nl::AttributeSet::Attribute
3095
+ end
3096
+
3097
+ class Gbp < Attribute
3098
+ TYPE: ::Integer
3099
+
3100
+ NAME: ::Symbol
3101
+
3102
+ # @private
3103
+ ORDER: ::Integer
3104
+
3105
+ # @private
3106
+ DATATYPE: untyped
3107
+ end
3108
+
3109
+ # @private
3110
+ BY_NAME: Hash[::Symbol, Attribute]
3111
+
3112
+ # @private
3113
+ BY_TYPE: Hash[::Integer, Attribute]
3114
+
3115
+ # @rbs return: ::Integer
3116
+ # @return [Integer]
3117
+ # @see Gbp
3118
+ def gbp: () -> ::Integer
3119
+
3120
+ # Looks up Attribute class by name.
3121
+ # @rbs name: Symbol
3122
+ # @rbs return: Attribute
3123
+ # @param [Symbol] name
3124
+ # @return [Attribute]
3125
+ def self.by_name: (Symbol name) -> Attribute
3126
+
3127
+ # Looks up Attribute class by type value.
3128
+ # @rbs type: Integer
3129
+ # @rbs return: Attribute
3130
+ # @param [Integer] type
3131
+ # @return [Attribute]
3132
+ def self.by_type: (Integer type) -> Attribute
3133
+ end
3134
+
3135
+ class PsampleAttrs < ::Nl::AttributeSet
3136
+ # Abstract class
3137
+ class Attribute < ::Nl::AttributeSet::Attribute
3138
+ end
3139
+
3140
+ class Group < Attribute
3141
+ TYPE: ::Integer
3142
+
3143
+ NAME: ::Symbol
3144
+
3145
+ # @private
3146
+ ORDER: ::Integer
3147
+
3148
+ # @private
3149
+ DATATYPE: untyped
3150
+ end
3151
+
3152
+ class Cookie < Attribute
3153
+ TYPE: ::Integer
3154
+
3155
+ NAME: ::Symbol
3156
+
3157
+ # @private
3158
+ ORDER: ::Integer
3159
+
3160
+ # @private
3161
+ DATATYPE: untyped
3162
+ end
3163
+
3164
+ # @private
3165
+ BY_NAME: Hash[::Symbol, Attribute]
3166
+
3167
+ # @private
3168
+ BY_TYPE: Hash[::Integer, Attribute]
3169
+
3170
+ # @rbs return: ::Integer
3171
+ # @return [Integer]
3172
+ # @see Group
3173
+ def group: () -> ::Integer
3174
+
3175
+ # @rbs return: ::String
3176
+ # @return [String]
3177
+ # @see Cookie
3178
+ def cookie: () -> ::String
3179
+
3180
+ # Looks up Attribute class by name.
3181
+ # @rbs name: Symbol
3182
+ # @rbs return: Attribute
3183
+ # @param [Symbol] name
3184
+ # @return [Attribute]
3185
+ def self.by_name: (Symbol name) -> Attribute
3186
+
3187
+ # Looks up Attribute class by type value.
3188
+ # @rbs type: Integer
3189
+ # @rbs return: Attribute
3190
+ # @param [Integer] type
3191
+ # @return [Attribute]
3192
+ def self.by_type: (Integer type) -> Attribute
3193
+ end
3194
+ end
3195
+
3196
+ module Messages
3197
+ # Get / dump OVS flow configuration and state
3198
+ class DoGetRequest < ::Nl::Genl::Message
3199
+ TYPE: ::Integer
3200
+
3201
+ FIXED_HEADER: untyped
3202
+
3203
+ ATTRIBUTE_SET: untyped
3204
+
3205
+ ATTRIBUTES: untyped
3206
+
3207
+ # ifindex of local port for datapath (0 to make a request not specific
3208
+ # to a datapath).
3209
+ # @rbs return: ::Integer
3210
+ # @return [Integer]
3211
+ def dp_ifindex: () -> ::Integer
3212
+
3213
+ # Nested attributes specifying the flow key. Always present in
3214
+ # notifications. Required for all requests (except dumps).
3215
+ # @rbs return: AttributeSets::KeyAttrs
3216
+ # @return [AttributeSets::KeyAttrs]
3217
+ # @see AttributeSets::FlowAttrs::Key
3218
+ def key: () -> AttributeSets::KeyAttrs
3219
+
3220
+ # A value between 1-16 octets specifying a unique identifier for the
3221
+ # flow. Causes the flow to be indexed by this value rather than the
3222
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3223
+ # requests. Present in notifications if the flow was created with this
3224
+ # attribute.
3225
+ # @rbs return: ::String
3226
+ # @return [String]
3227
+ # @see AttributeSets::FlowAttrs::Ufid
3228
+ def ufid: () -> ::String
3229
+
3230
+ # A 32-bit value of ORed flags that provide alternative semantics for
3231
+ # flow installation and retrieval. Optional for all requests.
3232
+ #
3233
+ #
3234
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3235
+ # @rbs return: ::Integer
3236
+ # @return [Integer]
3237
+ # @see AttributeSets::FlowAttrs::UfidFlags
3238
+ def ufid_flags: () -> ::Integer
3239
+ end
3240
+
3241
+ # Get / dump OVS flow configuration and state
3242
+ class DoGetReply < ::Nl::Genl::Message
3243
+ TYPE: ::Integer
3244
+
3245
+ FIXED_HEADER: untyped
3246
+
3247
+ ATTRIBUTE_SET: untyped
3248
+
3249
+ ATTRIBUTES: untyped
3250
+
3251
+ # ifindex of local port for datapath (0 to make a request not specific
3252
+ # to a datapath).
3253
+ # @rbs return: ::Integer
3254
+ # @return [Integer]
3255
+ def dp_ifindex: () -> ::Integer
3256
+
3257
+ # Nested attributes specifying the flow key. Always present in
3258
+ # notifications. Required for all requests (except dumps).
3259
+ # @rbs return: AttributeSets::KeyAttrs
3260
+ # @return [AttributeSets::KeyAttrs]
3261
+ # @see AttributeSets::FlowAttrs::Key
3262
+ def key: () -> AttributeSets::KeyAttrs
3263
+
3264
+ # Nested attributes specifying the actions to take for packets that
3265
+ # match the key. Always present in notifications. Required for
3266
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
3267
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
3268
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
3269
+ # nested attributes must be given.
3270
+ # @rbs return: AttributeSets::ActionAttrs
3271
+ # @return [AttributeSets::ActionAttrs]
3272
+ # @see AttributeSets::FlowAttrs::Actions
3273
+ def actions: () -> AttributeSets::ActionAttrs
3274
+
3275
+ # Statistics for this flow. Present in notifications if the stats would
3276
+ # be nonzero. Ignored in requests.
3277
+ # @rbs return: Structs::OvsFlowStats
3278
+ # @return [Structs::OvsFlowStats]
3279
+ # @see AttributeSets::FlowAttrs::Stats
3280
+ def stats: () -> Structs::OvsFlowStats
3281
+
3282
+ # Nested attributes specifying the mask bits for wildcarded flow
3283
+ # match. Mask bit value '1' specifies exact match with corresponding
3284
+ # flow key bit, while mask bit value '0' specifies a wildcarded
3285
+ # match. Omitting attribute is treated as wildcarding all corresponding
3286
+ # fields. Optional for all requests. If not present, all flow key bits
3287
+ # are exact match bits.
3288
+ # @rbs return: AttributeSets::KeyAttrs
3289
+ # @return [AttributeSets::KeyAttrs]
3290
+ # @see AttributeSets::FlowAttrs::Mask
3291
+ def mask: () -> AttributeSets::KeyAttrs
3292
+
3293
+ # A value between 1-16 octets specifying a unique identifier for the
3294
+ # flow. Causes the flow to be indexed by this value rather than the
3295
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3296
+ # requests. Present in notifications if the flow was created with this
3297
+ # attribute.
3298
+ # @rbs return: ::String
3299
+ # @return [String]
3300
+ # @see AttributeSets::FlowAttrs::Ufid
3301
+ def ufid: () -> ::String
3302
+ end
3303
+
3304
+ # Get / dump OVS flow configuration and state
3305
+ class DumpGetRequest < ::Nl::Genl::Message
3306
+ TYPE: ::Integer
3307
+
3308
+ FIXED_HEADER: untyped
3309
+
3310
+ ATTRIBUTE_SET: untyped
3311
+
3312
+ ATTRIBUTES: untyped
3313
+
3314
+ # ifindex of local port for datapath (0 to make a request not specific
3315
+ # to a datapath).
3316
+ # @rbs return: ::Integer
3317
+ # @return [Integer]
3318
+ def dp_ifindex: () -> ::Integer
3319
+
3320
+ # Nested attributes specifying the flow key. Always present in
3321
+ # notifications. Required for all requests (except dumps).
3322
+ # @rbs return: AttributeSets::KeyAttrs
3323
+ # @return [AttributeSets::KeyAttrs]
3324
+ # @see AttributeSets::FlowAttrs::Key
3325
+ def key: () -> AttributeSets::KeyAttrs
3326
+
3327
+ # A value between 1-16 octets specifying a unique identifier for the
3328
+ # flow. Causes the flow to be indexed by this value rather than the
3329
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3330
+ # requests. Present in notifications if the flow was created with this
3331
+ # attribute.
3332
+ # @rbs return: ::String
3333
+ # @return [String]
3334
+ # @see AttributeSets::FlowAttrs::Ufid
3335
+ def ufid: () -> ::String
3336
+
3337
+ # A 32-bit value of ORed flags that provide alternative semantics for
3338
+ # flow installation and retrieval. Optional for all requests.
3339
+ #
3340
+ #
3341
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3342
+ # @rbs return: ::Integer
3343
+ # @return [Integer]
3344
+ # @see AttributeSets::FlowAttrs::UfidFlags
3345
+ def ufid_flags: () -> ::Integer
3346
+ end
3347
+
3348
+ # Get / dump OVS flow configuration and state
3349
+ class DumpGetReply < ::Nl::Genl::Message
3350
+ TYPE: ::Integer
3351
+
3352
+ FIXED_HEADER: untyped
3353
+
3354
+ ATTRIBUTE_SET: untyped
3355
+
3356
+ ATTRIBUTES: untyped
3357
+
3358
+ # ifindex of local port for datapath (0 to make a request not specific
3359
+ # to a datapath).
3360
+ # @rbs return: ::Integer
3361
+ # @return [Integer]
3362
+ def dp_ifindex: () -> ::Integer
3363
+
3364
+ # Nested attributes specifying the flow key. Always present in
3365
+ # notifications. Required for all requests (except dumps).
3366
+ # @rbs return: AttributeSets::KeyAttrs
3367
+ # @return [AttributeSets::KeyAttrs]
3368
+ # @see AttributeSets::FlowAttrs::Key
3369
+ def key: () -> AttributeSets::KeyAttrs
3370
+
3371
+ # Nested attributes specifying the actions to take for packets that
3372
+ # match the key. Always present in notifications. Required for
3373
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
3374
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
3375
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
3376
+ # nested attributes must be given.
3377
+ # @rbs return: AttributeSets::ActionAttrs
3378
+ # @return [AttributeSets::ActionAttrs]
3379
+ # @see AttributeSets::FlowAttrs::Actions
3380
+ def actions: () -> AttributeSets::ActionAttrs
3381
+
3382
+ # Statistics for this flow. Present in notifications if the stats would
3383
+ # be nonzero. Ignored in requests.
3384
+ # @rbs return: Structs::OvsFlowStats
3385
+ # @return [Structs::OvsFlowStats]
3386
+ # @see AttributeSets::FlowAttrs::Stats
3387
+ def stats: () -> Structs::OvsFlowStats
3388
+
3389
+ # Nested attributes specifying the mask bits for wildcarded flow
3390
+ # match. Mask bit value '1' specifies exact match with corresponding
3391
+ # flow key bit, while mask bit value '0' specifies a wildcarded
3392
+ # match. Omitting attribute is treated as wildcarding all corresponding
3393
+ # fields. Optional for all requests. If not present, all flow key bits
3394
+ # are exact match bits.
3395
+ # @rbs return: AttributeSets::KeyAttrs
3396
+ # @return [AttributeSets::KeyAttrs]
3397
+ # @see AttributeSets::FlowAttrs::Mask
3398
+ def mask: () -> AttributeSets::KeyAttrs
3399
+
3400
+ # A value between 1-16 octets specifying a unique identifier for the
3401
+ # flow. Causes the flow to be indexed by this value rather than the
3402
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3403
+ # requests. Present in notifications if the flow was created with this
3404
+ # attribute.
3405
+ # @rbs return: ::String
3406
+ # @return [String]
3407
+ # @see AttributeSets::FlowAttrs::Ufid
3408
+ def ufid: () -> ::String
3409
+ end
3410
+
3411
+ # Create OVS flow configuration in a data path
3412
+ class DoNewRequest < ::Nl::Genl::Message
3413
+ TYPE: ::Integer
3414
+
3415
+ FIXED_HEADER: untyped
3416
+
3417
+ ATTRIBUTE_SET: untyped
3418
+
3419
+ ATTRIBUTES: untyped
3420
+
3421
+ # ifindex of local port for datapath (0 to make a request not specific
3422
+ # to a datapath).
3423
+ # @rbs return: ::Integer
3424
+ # @return [Integer]
3425
+ def dp_ifindex: () -> ::Integer
3426
+
3427
+ # Nested attributes specifying the flow key. Always present in
3428
+ # notifications. Required for all requests (except dumps).
3429
+ # @rbs return: AttributeSets::KeyAttrs
3430
+ # @return [AttributeSets::KeyAttrs]
3431
+ # @see AttributeSets::FlowAttrs::Key
3432
+ def key: () -> AttributeSets::KeyAttrs
3433
+
3434
+ # Nested attributes specifying the actions to take for packets that
3435
+ # match the key. Always present in notifications. Required for
3436
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
3437
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
3438
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
3439
+ # nested attributes must be given.
3440
+ # @rbs return: AttributeSets::ActionAttrs
3441
+ # @return [AttributeSets::ActionAttrs]
3442
+ # @see AttributeSets::FlowAttrs::Actions
3443
+ def actions: () -> AttributeSets::ActionAttrs
3444
+
3445
+ # Nested attributes specifying the mask bits for wildcarded flow
3446
+ # match. Mask bit value '1' specifies exact match with corresponding
3447
+ # flow key bit, while mask bit value '0' specifies a wildcarded
3448
+ # match. Omitting attribute is treated as wildcarding all corresponding
3449
+ # fields. Optional for all requests. If not present, all flow key bits
3450
+ # are exact match bits.
3451
+ # @rbs return: AttributeSets::KeyAttrs
3452
+ # @return [AttributeSets::KeyAttrs]
3453
+ # @see AttributeSets::FlowAttrs::Mask
3454
+ def mask: () -> AttributeSets::KeyAttrs
3455
+
3456
+ # A value between 1-16 octets specifying a unique identifier for the
3457
+ # flow. Causes the flow to be indexed by this value rather than the
3458
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3459
+ # requests. Present in notifications if the flow was created with this
3460
+ # attribute.
3461
+ # @rbs return: ::String
3462
+ # @return [String]
3463
+ # @see AttributeSets::FlowAttrs::Ufid
3464
+ def ufid: () -> ::String
3465
+ end
3466
+ end
3467
+
3468
+ module Notifications
3469
+ end
3470
+
3471
+ # @private
3472
+ NOTIFICATIONS: Hash[::Integer, ::Class]
3473
+
3474
+ # Get / dump OVS flow configuration and state
3475
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String, ?ufid_flags: ::Integer) -> Messages::DoGetReply
3476
+ # @param [Hash] args
3477
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3478
+ # to a datapath).
3479
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3480
+ # notifications. Required for all requests (except dumps).
3481
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3482
+ # flow. Causes the flow to be indexed by this value rather than the
3483
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3484
+ # requests. Present in notifications if the flow was created with this
3485
+ # attribute.
3486
+ # @option args [Integer] ufid_flags A 32-bit value of ORed flags that provide alternative semantics for
3487
+ # flow installation and retrieval. Optional for all requests.
3488
+ #
3489
+ #
3490
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3491
+ # @return [Messages::DoGetReply]
3492
+ # @see Messages::DoGetRequest
3493
+ def do_get: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String, ?ufid_flags: ::Integer) -> Messages::DoGetReply
3494
+
3495
+ # Get / dump OVS flow configuration and state
3496
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String, ?ufid_flags: ::Integer) -> Array[Messages::DumpGetReply]
3497
+ # | (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String, ?ufid_flags: ::Integer) { (Messages::DumpGetReply) -> void } -> void
3498
+ # @overload dump_get(**args)
3499
+ # Returns an array when no block is given.
3500
+ # @param [Hash] args
3501
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3502
+ # to a datapath).
3503
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3504
+ # notifications. Required for all requests (except dumps).
3505
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3506
+ # flow. Causes the flow to be indexed by this value rather than the
3507
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3508
+ # requests. Present in notifications if the flow was created with this
3509
+ # attribute.
3510
+ # @option args [Integer] ufid_flags A 32-bit value of ORed flags that provide alternative semantics for
3511
+ # flow installation and retrieval. Optional for all requests.
3512
+ #
3513
+ #
3514
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3515
+ # @return [Array<Messages::DumpGetReply>]
3516
+ # @overload dump_get(**args, &block)
3517
+ # Yields each reply when a block is given.
3518
+ # @param [Hash] args
3519
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3520
+ # to a datapath).
3521
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3522
+ # notifications. Required for all requests (except dumps).
3523
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3524
+ # flow. Causes the flow to be indexed by this value rather than the
3525
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3526
+ # requests. Present in notifications if the flow was created with this
3527
+ # attribute.
3528
+ # @option args [Integer] ufid_flags A 32-bit value of ORed flags that provide alternative semantics for
3529
+ # flow installation and retrieval. Optional for all requests.
3530
+ #
3531
+ #
3532
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3533
+ # @yieldparam [Messages::DumpGetReply] reply
3534
+ # @return [void]
3535
+ # @see Messages::DumpGetRequest
3536
+ def dump_get: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String, ?ufid_flags: ::Integer) -> Array[Messages::DumpGetReply]
3537
+ | (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String, ?ufid_flags: ::Integer) { (Messages::DumpGetReply) -> void } -> void
3538
+
3539
+ # Create OVS flow configuration in a data path
3540
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?actions: (AttributeSets::ActionAttrs | ::Hash[::Symbol, untyped]), ?mask: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String) -> void
3541
+ # @param [Hash] args
3542
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3543
+ # to a datapath).
3544
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3545
+ # notifications. Required for all requests (except dumps).
3546
+ # @option args [AttributeSets::ActionAttrs, Hash<Symbol, Object>] actions Nested attributes specifying the actions to take for packets that
3547
+ # match the key. Always present in notifications. Required for
3548
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
3549
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
3550
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
3551
+ # nested attributes must be given.
3552
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] mask Nested attributes specifying the mask bits for wildcarded flow
3553
+ # match. Mask bit value '1' specifies exact match with corresponding
3554
+ # flow key bit, while mask bit value '0' specifies a wildcarded
3555
+ # match. Omitting attribute is treated as wildcarding all corresponding
3556
+ # fields. Optional for all requests. If not present, all flow key bits
3557
+ # are exact match bits.
3558
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3559
+ # flow. Causes the flow to be indexed by this value rather than the
3560
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3561
+ # requests. Present in notifications if the flow was created with this
3562
+ # attribute.
3563
+ # @return [void]
3564
+ # @see Messages::DoNewRequest
3565
+ def do_new: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?actions: AttributeSets::ActionAttrs | ::Hash[::Symbol, untyped], ?mask: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String) -> void
3566
+
3567
+ class AsyncOperations
3568
+ # @private
3569
+ def initialize: () ?{ (?) -> untyped } -> untyped
3570
+
3571
+ # Get / dump OVS flow configuration and state
3572
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String, ?ufid_flags: ::Integer) -> ::Nl::Async::Future[Messages::DoGetReply]
3573
+ # @param [Hash] args
3574
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3575
+ # to a datapath).
3576
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3577
+ # notifications. Required for all requests (except dumps).
3578
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3579
+ # flow. Causes the flow to be indexed by this value rather than the
3580
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3581
+ # requests. Present in notifications if the flow was created with this
3582
+ # attribute.
3583
+ # @option args [Integer] ufid_flags A 32-bit value of ORed flags that provide alternative semantics for
3584
+ # flow installation and retrieval. Optional for all requests.
3585
+ #
3586
+ #
3587
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3588
+ # @return [Nl::Async::Future<Messages::DoGetReply>]
3589
+ # @see Messages::DoGetRequest
3590
+ def do_get: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String, ?ufid_flags: ::Integer) -> ::Nl::Async::Future[Messages::DoGetReply]
3591
+
3592
+ # Get / dump OVS flow configuration and state
3593
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String, ?ufid_flags: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetReply]
3594
+ # @param [Hash] args
3595
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3596
+ # to a datapath).
3597
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3598
+ # notifications. Required for all requests (except dumps).
3599
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3600
+ # flow. Causes the flow to be indexed by this value rather than the
3601
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3602
+ # requests. Present in notifications if the flow was created with this
3603
+ # attribute.
3604
+ # @option args [Integer] ufid_flags A 32-bit value of ORed flags that provide alternative semantics for
3605
+ # flow installation and retrieval. Optional for all requests.
3606
+ #
3607
+ #
3608
+ # Known flags are defined in {Flags::OvsUfidFlags}.
3609
+ # @return [Nl::Async::Stream<Messages::DumpGetReply>]
3610
+ # @see Messages::DumpGetRequest
3611
+ def dump_get: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String, ?ufid_flags: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetReply]
3612
+
3613
+ # Create OVS flow configuration in a data path
3614
+ # @rbs (?dp_ifindex: ::Integer, ?key: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?actions: (AttributeSets::ActionAttrs | ::Hash[::Symbol, untyped]), ?mask: (AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped]), ?ufid: ::String) -> ::Nl::Async::Future[void]
3615
+ # @param [Hash] args
3616
+ # @option args [Integer] dp_ifindex ifindex of local port for datapath (0 to make a request not specific
3617
+ # to a datapath).
3618
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] key Nested attributes specifying the flow key. Always present in
3619
+ # notifications. Required for all requests (except dumps).
3620
+ # @option args [AttributeSets::ActionAttrs, Hash<Symbol, Object>] actions Nested attributes specifying the actions to take for packets that
3621
+ # match the key. Always present in notifications. Required for
3622
+ # OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An
3623
+ # OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
3624
+ # actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
3625
+ # nested attributes must be given.
3626
+ # @option args [AttributeSets::KeyAttrs, Hash<Symbol, Object>] mask Nested attributes specifying the mask bits for wildcarded flow
3627
+ # match. Mask bit value '1' specifies exact match with corresponding
3628
+ # flow key bit, while mask bit value '0' specifies a wildcarded
3629
+ # match. Omitting attribute is treated as wildcarding all corresponding
3630
+ # fields. Optional for all requests. If not present, all flow key bits
3631
+ # are exact match bits.
3632
+ # @option args [String] ufid A value between 1-16 octets specifying a unique identifier for the
3633
+ # flow. Causes the flow to be indexed by this value rather than the
3634
+ # value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
3635
+ # requests. Present in notifications if the flow was created with this
3636
+ # attribute.
3637
+ # @return [Nl::Async::Future<void>]
3638
+ # @see Messages::DoNewRequest
3639
+ def do_new: (?dp_ifindex: ::Integer, ?key: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?actions: AttributeSets::ActionAttrs | ::Hash[::Symbol, untyped], ?mask: AttributeSets::KeyAttrs | ::Hash[::Symbol, untyped], ?ufid: ::String) -> ::Nl::Async::Future[void]
3640
+ end
3641
+
3642
+ # Returns the asynchronous operation facade for this family.
3643
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
3644
+ # @param [::Integer, nil] stream_capacity
3645
+ # @return [AsyncOperations]
3646
+ def async: (?stream_capacity: ::Integer?) -> AsyncOperations
3647
+
3648
+ # @rbs (*(:ovs_flow) groups) -> self
3649
+ # @param [Array<:ovs_flow>] groups
3650
+ # @return [self]
3651
+ def subscribe: (*:ovs_flow groups) -> self
3652
+
3653
+ # @rbs (*(:ovs_flow) groups) -> self
3654
+ # @param [Array<:ovs_flow>] groups
3655
+ # @return [self]
3656
+ def unsubscribe: (*:ovs_flow groups) -> self
3657
+ end
3658
+ end
3659
+ end