class SNMP::SNMPv1_Trap
The PDU
class for traps in SNMPv1.
Constants
- GENERIC_TRAP_CODE
-
Code map for all of the generic traps defined in RFC 1157.
- GENERIC_TRAP_NAME
-
Name map for all of the generic traps defined in RFC 1157.
Attributes
Returns the source IP address for the trap, usually derived from the source IP address of the packet that delivered the trap.
Public Class Methods
Source
# 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) timestamp = 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, timestamp, varbind_list) end
Source
# File lib/snmp/pdu.rb, line 356 def initialize(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbind_list) @enterprise = enterprise @agent_addr = agent_addr self.generic_trap = generic_trap @specific_trap = specific_trap @timestamp = timestamp @varbind_list = varbind_list end
Public Instance Methods
Source
# File lib/snmp/pdu.rb, line 404 def each_varbind(&block) @varbind_list.each(&block) end
Source
# 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
Source
# File lib/snmp/pdu.rb, line 390 def generic_trap GENERIC_TRAP_NAME[@generic_trap] end
Source
# 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