Class: SNMP::SNMPv1_Trap
- Inherits:
-
Object
- Object
- SNMP::SNMPv1_Trap
- Extended by:
- BER::Decode
- Includes:
- BER::Encode
- Defined in:
- lib/snmp/pdu.rb
Overview
The PDU class for traps in SNMPv1.
Constant Summary collapse
- GENERIC_TRAP_NAME =
Name map for all of the generic traps defined in RFC 1157.
{ 0 => :coldStart, 1 => :warmStart, 2 => :linkDown, 3 => :linkUp, 4 => :authenticationFailure, 5 => :egpNeighborLoss, 6 => :enterpriseSpecific }
- GENERIC_TRAP_CODE =
Code map for all of the generic traps defined in RFC 1157.
GENERIC_TRAP_NAME.invert
Instance Attribute Summary collapse
-
#agent_addr ⇒ Object
Returns the value of attribute agent_addr.
-
#enterprise ⇒ Object
Returns the value of attribute enterprise.
-
#source_ip ⇒ Object
Returns the source IP address for the trap, usually derived from the source IP address of the packet that delivered the trap.
-
#specific_trap ⇒ Object
Returns the value of attribute specific_trap.
-
#timestamp ⇒ Object
Returns the value of attribute timestamp.
-
#varbind_list ⇒ Object
(also: #vb_list)
Returns the value of attribute varbind_list.
Class Method Summary collapse
Instance Method Summary collapse
- #each_varbind(&block) ⇒ Object
- #encode ⇒ Object
- #generic_trap ⇒ Object
- #generic_trap=(trap) ⇒ Object
-
#initialize(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbind_list) ⇒ SNMPv1_Trap
constructor
A new instance of SNMPv1_Trap.
Methods included from BER::Decode
assert_no_remainder, build_integer, decode_integer, decode_integer_value, decode_ip_address, decode_object_id, decode_object_id_value, decode_octet_string, decode_sequence, decode_timeticks, decode_tlv, decode_uinteger_value
Methods included from BER::Encode
#encode_exception, #encode_integer, #encode_length, #encode_null, #encode_object_id, #encode_octet_string, #encode_sequence, #encode_tagged_integer, #encode_tlv, #integer_to_octets
Constructor Details
#initialize(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbind_list) ⇒ SNMPv1_Trap
Returns a new instance of SNMPv1_Trap.
356 357 358 359 360 361 362 363 |
# File 'lib/snmp/pdu.rb', line 356 def initialize(enterprise, agent_addr, generic_trap, specific_trap, , varbind_list) @enterprise = enterprise @agent_addr = agent_addr self.generic_trap = generic_trap @specific_trap = specific_trap @timestamp = @varbind_list = varbind_list end |
Instance Attribute Details
#agent_addr ⇒ Object
Returns the value of attribute agent_addr.
334 335 336 |
# File 'lib/snmp/pdu.rb', line 334 def agent_addr @agent_addr end |
#enterprise ⇒ Object
Returns the value of attribute enterprise.
333 334 335 |
# File 'lib/snmp/pdu.rb', line 333 def enterprise @enterprise end |
#source_ip ⇒ Object
Returns the source IP address for the trap, usually derived from the source IP address of the packet that delivered the trap.
331 332 333 |
# File 'lib/snmp/pdu.rb', line 331 def source_ip @source_ip end |
#specific_trap ⇒ Object
Returns the value of attribute specific_trap.
335 336 337 |
# File 'lib/snmp/pdu.rb', line 335 def specific_trap @specific_trap end |
#timestamp ⇒ Object
Returns the value of attribute timestamp.
336 337 338 |
# File 'lib/snmp/pdu.rb', line 336 def @timestamp end |
#varbind_list ⇒ Object Also known as: vb_list
Returns the value of attribute varbind_list.
337 338 339 |
# File 'lib/snmp/pdu.rb', line 337 def varbind_list @varbind_list end |
Class Method Details
.decode(pdu_data, mib = nil) ⇒ Object
341 342 343 344 345 346 347 348 349 350 351 352 353 354 |
# File 'lib/snmp/pdu.rb', line 341 def self.decode(pdu_data, mib=nil) oid_data, remainder = decode_object_id(pdu_data) enterprise = ObjectId.new(oid_data) ip_data, remainder = decode_ip_address(remainder) agent_addr = IpAddress.new(ip_data) generic_trap, remainder = decode_integer(remainder) specific_trap, remainder = decode_integer(remainder) time_data, remainder = decode_timeticks(remainder) = TimeTicks.new(time_data) varbind_list, remainder = VarBindList.decode(remainder, mib) assert_no_remainder(remainder) SNMPv1_Trap.new(enterprise, agent_addr, generic_trap, specific_trap, , varbind_list) end |
Instance Method Details
#each_varbind(&block) ⇒ Object
404 405 406 |
# File 'lib/snmp/pdu.rb', line 404 def each_varbind(&block) @varbind_list.each(&block) end |
#encode ⇒ Object
394 395 396 397 398 399 400 401 402 |
# File 'lib/snmp/pdu.rb', line 394 def encode pdu_data = @enterprise.encode << @agent_addr.encode << encode_integer(@generic_trap) << encode_integer(@specific_trap) << @timestamp.encode << @varbind_list.encode encode_tlv(BER::SNMPv1_Trap_PDU_TAG, pdu_data) end |
#generic_trap ⇒ Object
390 391 392 |
# File 'lib/snmp/pdu.rb', line 390 def generic_trap GENERIC_TRAP_NAME[@generic_trap] end |
#generic_trap=(trap) ⇒ Object
379 380 381 382 383 384 385 386 387 388 |
# File 'lib/snmp/pdu.rb', line 379 def generic_trap=(trap) @generic_trap = GENERIC_TRAP_CODE[trap] unless @generic_trap if trap.respond_to?(:to_i) && GENERIC_TRAP_NAME[trap.to_i] @generic_trap = trap else raise InvalidGenericTrap, trap.to_s end end end |