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
46
47
48
49
50
51
52
|
# File 'lib/em-sflow/flow_record.rb', line 4
def to_flow_records!(record_count)
records = []
record_count.times do
enterprise_format, length = unpack("NN")
enterprise = enterprise_format >> 12
format = enterprise_format & (2 ** 12 - 1)
self.advance(8)
record_data = self.advance(length)
if enterprise == 0 && format == 1
records << EM::SFlow::RawPacketHeader.new(record_data)
elsif enterprise == 0 && format == 2
elsif enterprise == 0 && format == 3
records << EM::SFlow::IPv4Data.new(record_data)
elsif enterprise == 0 && format == 4
records << EM::SFlow::IPv6Data.new(record_data)
elsif enterprise == 0 && format == 1001
elsif enterprise == 0 && format == 1002
elsif enterprise == 0 && format == 1003
elsif enterprise == 0 && format == 1004
elsif enterprise == 0 && format == 1005
elsif enterprise == 0 && format == 1006
elsif enterprise == 0 && format == 1007
elsif enterprise == 0 && format == 1008
elsif enterprise == 0 && format == 1009
elsif enterprise == 0 && format == 1010
elsif enterprise == 0 && format == 1011
elsif enterprise == 0 && format == 1012
end
end
records
end
|