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