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