em-sflow 1.0.2 → 1.0.3

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.
@@ -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
-