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
agent_addr[RW]
enterprise[RW]
source_ip[RW]
Returns the source IP address for the trap, usually derived from the source IP address of the packet that delivered the trap.
specific_trap[RW]
timestamp[RW]
varbind_list[RW]
vb_list[RW]
Public Class Methods
decode(pdu_data, mib=nil)
click to toggle source
# File lib/snmp/pdu.rb, line 313 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
new(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbind_list)
click to toggle source
# File lib/snmp/pdu.rb, line 328 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
each_varbind(&block)
click to toggle source
# File lib/snmp/pdu.rb, line 376 def each_varbind(&block) @varbind_list.each(&block) end
encode()
click to toggle source
# File lib/snmp/pdu.rb, line 366 def encode pdu_data = @enterprise.encode << @agent_addr.encode << encode_integer(@generic_trap) << encode_integer(@specific_trap) << @timestamp.encode << @varbind_list.encode encode_tlv(SNMPv1_Trap_PDU_TAG, pdu_data) end
generic_trap()
click to toggle source
# File lib/snmp/pdu.rb, line 362 def generic_trap GENERIC_TRAP_NAME[@generic_trap] end
generic_trap=(trap)
click to toggle source
# File lib/snmp/pdu.rb, line 351 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