
This file contains a list of things that should be changed or added to 
the scotty extension.


General:
--------

	o There are still lots of tests missing.

	o Write a users and programmers manual with good examples.

	o Better support for event driven programming within scotty:

		event bind tag sequence
		event bind tag sequence script
		event bind tag sequence +script
		event tags ?tagList?
		event raise <tag>

	  This allow to decouple event detection scripts from the code
	  that handles events.

	o Better integration of the safe Tcl extension. There are many
	  places where data should be associated with a Tcl interpreter
	  and not shared by all Tcl interpreters. This includes the 
	  socket commands (tcp,udp), the job command and the snmp,cmip
	  commands.

TCP/IP:
-------

	o The getclock/getdate commands should probably return a better date
	  format including the time zone. This is really a portability mess.

	o Should I add `netdb passwd' and `netdb group'? Would be fun for 
	  the bones database...

	o The http command does not handle RFC 1738 unsafe and reserved 
	  character encodings.

	o The http command should be extended to operate in an asynchronous
	  fashion.

	o Changing the command associated with a job may lead to some
	  memory problems if the job is currently running, e.g.

		[job current] command $newmcd


SNMP:
-----

	o Add a -window and a -delay session option that allows to
	  implement a very simple flow-control mechanism. There are
	  reports from people where slow agents simple get overloaded
	  by asynchronous requests. The delay could be used to enforce
	  a minimum delay between asynchronous requests.

	o mib name 1.3.6.1.6.3.6.1.2.2` returns experimental :-(

	o mib oid enterprises.3 returns an error :-(

	o The instance tree is still shared by all Tcl interpreter.
	  Every interpreter should maintain its own instance tree.

	o The definitions of parser token and ASN1 types is messed up. We 
	  need to clearly distinguish these things. Needs to be cleaned up.

	o Recognize AUGMENT options and make default values accessible in 
	  the agent module - how do we handle IMPLICIT keywords?

	o The parser should recognize constraints like sizes. The agent
          should make same sanity checks to enforce these restrictions.
          We should also recognize default values. Perhaps it is time to 
          find a volunteer to rewrite the whole parser. We could than
	  get AGENT-CAPABILITIES etc. for free.

	o SNMP_SplitVarBindList(), SNMP_MergeVarBindList(), 
	  SNMP_FreeVarBindList() should be used to create a vector of the 
	  varbind. This will avoid some Tcl list operations in the walk 
	  command and agent interface.

	o Should we really automatically create instances if we receive set
	  requests for not existing SNMP variables? Or should be just call
	  the create binding so that Tcl scripts have complete control? Yes.

	o Test the MD5 authentication code and check responses for validity.
	  Needs to lookup party and check MD5 digest plus accelerate 
	  timestamps for the P/P/C model.


Tkined:
-------

	o Replace all uses of nslook with the netdb command.

	o ip_monitor should be able to display all information available
	  in an etherstat response.

	o snmp_monitor should be able to monitor non-integer variables
	  like time ticks or even display strings.

	o Need a way to limit walks to a deapth of N because some RMON boxes
	  have MIBS that grow fastern than a walk (de@lick.ucsc.edu)

	o Killed monitoring jobs remain in saved files and sometimes restart
	  in unwanted ways. Needs some fixing.

	o ip_world: reuse already traced nodes, better guess for nodes by
	  examining their neighbours.

	o The handling of monitoring jobs should be clarified. There must be
	  a way to edit the objects handled by a single job and we need a way
	  to do some housecleaning when a job is deleted. How about a standard
	  way to do things: cmd -> create -> job -> cleanup. It would be nice
	  to have calling conventions so that we can automate restart calls
	  etc.

	o The remote mechanism in manager.tcl should use a udp socket to
	  negotiate the connection request. This would prevent clients from
	  blocking and it would also simplify the implementation because we
	  do not need an rpc server just to accept connection requests.

	o The game could be funnier.


LIBRARY:
--------

	o The SNMP related procs should operate in an asynchronous mode.


EXAMPLES:
---------

	o The mibtree script should better support monitoring jobs. Output
	  should go to different windows and it should be possible to adjust
	  the monitoring frequencies.


GDMO:
-----

	o A basic test suite against the OIM.gdmo would be valuable.

	o The list handling code in parse.y can be optimized.

	o The whole implementation needs some cleanups.

	o Options should be stored in bit vectors instead those ugly arrays.

	o We should support lex - Erik might help on this.


CMIP:
-----

	o We should write our own CMIP protocol implementation as the
	  osimis stuff is far to fat to be used by most of us.

