Top Level Namespace
Defined Under Namespace
Classes: IpAddress, MacAddress, OFAction, OFActionEnqueue, OFActionOutput, OFActionSetDestinationPort, OFActionSetIpDestination, OFActionSetIpSource, OFActionSetIpTos, OFActionSetMacDestination, OFActionSetMacSource, OFActionSetSourcePort, OFActionSetVlanId, OFActionSetVlanPcp, OFActionStripVlan, OFActionVendor, OFActions, OFAggregateStatisticsReply, OFAggregateStatisticsRequest, OFBarrierReply, OFBarrierRequest, OFDescriptionStatistics, OFEchoReply, OFEchoRequest, OFFeaturesReply, OFFeaturesRequest, OFFlowMod, OFFlowRemoved, OFFlowStatisticsReply, OFFlowStatisticsRequest, OFGetConfigReply, OFGetConfigRequest, OFHello, OFMatch, OFMessage, OFPacketIn, OFPacketOut, OFPhysicalPort, OFPortMod, OFPortNumber, OFPortStatisticsReply, OFPortStatisticsRequest, OFPortStatus, OFQueueStatisticsReply, OFQueueStatisticsRequest, OFSetConfig, OFStatistics, OFStatisticsReply, OFStatisticsRequest, OFTableStatistics, OFVendor, OFVendorStatistics, SuperclassBase
Instance Method Summary
collapse
Instance Method Details
#_def_enum(size) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/helpers/enum.rb', line 3
def _def_enum(size)
eval %(
class Enum#{size} < BinData::Primitive
mandatory_parameter :list
endian :big
uint#{size} :enum, initial_value: 0
def get
list.invert.fetch(enum)
rescue KeyError
enum
end
def set(value)
self.enum = list.fetch(value)
rescue KeyError
self.enum = value
end
private
def list
list = eval_parameter(:list)
case list
when Array
shift = 0
list.each_with_object({}) do |each, result|
result[each] = shift
shift += 1
result
end
when Hash
list
end
end
end
)
end
|
#_def_flags(size) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/helpers/flags.rb', line 3
def _def_flags(size)
eval %(
class Flags#{size} < BinData::Primitive
mandatory_parameter :list
endian :big
uint#{size} :flags, initial_value: 0
def get
list.each_with_object([]) do |(key, value), result|
result << key if (flags & value != 0) || (flags == value)
result
end
end
def set(value)
value.each do |each|
fail "Invalid flag: \#{value}" unless list.keys.include?(each)
end
self.flags = value.empty? ?
0 :
value.map { |each| list[each] }.inject(:|)
end
private
def list
list = eval_parameter(:list)
case list
when Array
shift = 0
list.each_with_object({}) do |each, result|
result[each] = 1 << shift
shift += 1
result
end
when Hash
list
end
end
end
)
end
|