# File lib/snmp/pdu.rb, line 313
    def self.decode(pdu_data)
        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)
        assert_no_remainder(remainder)
        SNMPv1_Trap.new(enterprise, agent_addr, generic_trap, specific_trap,
            timestamp, varbind_list)
    end