em-sflow 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,6 +14,8 @@ require "em-sflow/packet/counter_sample"
14
14
  require "em-sflow/packet/raw_packet_header"
15
15
  require "em-sflow/packet/generic_interface_counters"
16
16
  require "em-sflow/packet/ethernet_interface_counters"
17
+ require "em-sflow/packet/ipv4_data"
18
+ require "em-sflow/packet/ipv6_data"
17
19
 
18
20
  module EventMachine
19
21
  module SFlow
@@ -18,9 +18,9 @@ module EventMachine
18
18
  elsif enterprise == 0 && format == 2
19
19
  # records << EM::SFlow::EthernetFrameData.new(record_data)
20
20
  elsif enterprise == 0 && format == 3
21
- # records << EM::SFlow::IPv4Data.new(record_data)
21
+ records << EM::SFlow::IPv4Data.new(record_data)
22
22
  elsif enterprise == 0 && format == 4
23
- # records << EM::SFlow::IPv6Data.new(record_data)
23
+ records << EM::SFlow::IPv6Data.new(record_data)
24
24
  elsif enterprise == 0 && format == 1001
25
25
  # records << EM::SFlow::ExtendedSwitchData.new(record_data)
26
26
  elsif enterprise == 0 && format == 1002
@@ -52,4 +52,4 @@ module EventMachine
52
52
  end
53
53
  end
54
54
  end
55
- end
55
+ end
@@ -0,0 +1,13 @@
1
+ class EventMachine::SFlow::IPv4Data
2
+ attr_accessor :length, :protocol, :src_ip, :dst_ip, :src_port, :dst_port, :tcp_flags, :tos
3
+
4
+ def initialize data
5
+ data.extend EventMachine::SFlow::BinaryString
6
+
7
+ @length, @protocol, src, dst, @src_port, @dst_port, @tcp_flags, @tos = data.unpack("NNNNNNNN")
8
+ data.advance(32)
9
+
10
+ @src_ip = IPAddr.new(src, Socket::AF_INET)
11
+ @dst_ip = IPAddr.new(dst, Socket::AF_INET)
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ class EventMachine::SFlow::IPv6Data
2
+ attr_accessor :length, :protocol, :src_ip, :dst_ip, :src_port, :dst_port, :tcp_flags, :priority
3
+
4
+ def initialize data
5
+ data.extend EventMachine::SFlow::BinaryString
6
+
7
+ @length, @protocol = data.unpack("NN")
8
+ data.advance(8)
9
+
10
+ src = data.unpack("NNNN")
11
+ @src_ip = IPAddr.new((src[0] << 96) + (src[1] << 64) + (src[2] << 32) + src[3], Socket::AF_INET6)
12
+ data.advance(16)
13
+
14
+ dst = data.unpack("NNNN")
15
+ @dst_ip = IPAddr.new((dst[0] << 96) + (dst[1] << 64) + (dst[2] << 32) + dst[3], Socket::AF_INET6)
16
+ data.advance(16)
17
+
18
+ @src_port, @dst_port, @tcp_flags, @priority = data.unpack("NNNN")
19
+ data.advance(16)
20
+ end
21
+ end
@@ -1,5 +1,5 @@
1
1
  module EventMachine
2
2
  module SFlow
3
- VERSION = "1.0.2"
3
+ VERSION = "1.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,46 +1,40 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: em-sflow
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 2
9
- version: 1.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.3
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Norman Elton
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2013-04-05 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-04-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: eventmachine
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 12
30
- - 10
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
31
21
  version: 0.12.10
32
22
  type: :runtime
33
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.12.10
34
30
  description: EventMachine-powered sFlow Collector
35
- email:
31
+ email:
36
32
  - normelton@gmail.com
37
33
  executables: []
38
-
39
34
  extensions: []
40
-
41
- extra_rdoc_files:
35
+ extra_rdoc_files:
42
36
  - README.rdoc
43
- files:
37
+ files:
44
38
  - .gitignore
45
39
  - Gemfile
46
40
  - LICENSE
@@ -58,42 +52,38 @@ files:
58
52
  - lib/em-sflow/packet/expanded_flow_sample.rb
59
53
  - lib/em-sflow/packet/flow_sample.rb
60
54
  - lib/em-sflow/packet/generic_interface_counters.rb
55
+ - lib/em-sflow/packet/ipv4_data.rb
56
+ - lib/em-sflow/packet/ipv6_data.rb
61
57
  - lib/em-sflow/packet/raw_packet_header.rb
62
58
  - lib/em-sflow/version.rb
63
- has_rdoc: true
64
59
  homepage: http://github.com/normelton/em-sflow
65
60
  licenses: []
66
-
67
61
  post_install_message:
68
- rdoc_options:
62
+ rdoc_options:
69
63
  - --line-numbers
70
64
  - --inline-source
71
65
  - --title
72
66
  - EM-SFLOW
73
67
  - --main
74
68
  - README.rdoc
75
- require_paths:
69
+ require_paths:
76
70
  - lib
77
- required_ruby_version: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- segments:
82
- - 0
83
- version: "0"
84
- required_rubygems_version: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- segments:
89
- - 0
90
- version: "0"
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
91
83
  requirements: []
92
-
93
84
  rubyforge_project:
94
- rubygems_version: 1.3.6
85
+ rubygems_version: 1.8.24
95
86
  signing_key:
96
87
  specification_version: 3
97
88
  summary: EventMachine-powered sFlow Collector
98
89
  test_files: []
99
-