[tkined] Whither Scotty 3.0.0 Agent (Responder) Sessions?

Judah Greenblatt (judah@bbt.com)
Wed, 21 Jul 1999 11:03:00 -0400

Herr Schönwälder:

I am currently using Scotty 2.1.10 (on Solaris) to implement a
moderately complex SNMP agent.
I have started looking to upgrade to Scotty 3.0.0, mostly to get the
performance improvement of using Tcl objects in the implementation.

Looking over the Scotty 3.0.0 snapshot release, I see that
instance bindings are completely gone -
TnmSnmpEvalNodeBinding is still called from tnmSnmpAgent.c,
but no one ever calls TnmSnmpSetNodeBinding to create such a binding.

The only 3.0.0 agent example I could find used only read-only variables,
and implemented their behavior using the Tcl "trace variable" feature.
The only bindings allowed seem to be "begin" and "end".

I'm wondering what direction Scotty is going to take for agent (responder)
implementation?
- keep only begin and end callbacks. Agents would be implemented
as 2 huge callbacks.
- re-implement get, set, check, and commit callbacks in 3.0?
- something else?

An agent could be completely implemented as one big callback - the
"begin" binding would replace get and set bindings, and
the "end" binding would replace "commit" and "rollback".
The actual retrieval or assignment of values would occur between
these two callbacks. (I'll have to think how/where "check" could be
implemented.)

The bindings would repeatedly walk the varbind list, calling out to
other Tcl code based on PDU type and the OIDs in the varbind list.
This could probably even be done efficiently using a Tcl array of callback
scripts, indexed by OID or mib object name. It would even resolve a
problem I've been having with Scotty 2.1.10 where a table row is not
created until too late (one "set" message sets the RowStatus column for
a row and sets another column of the same row. The RowStatus column
occurs after the other column in the varbind list. The code that
processes set messages errors on the reference to the other colunm
before the "create" callback on the rowStatus column can create the row.)

I'd greately appreciate some hint on what direction you intend to go with
Scotty 3.0 responder sessions. I'm going to try re-implementing my agent
using only begin and end bindings in the absence of any feedback.

If you intend to implement something more complex, I can volunteer some
time to help with the implementation (I have 20 years of C coding
experience on Unix, but I'm only starting to learn the Tcl 8.0 library).

-- 
Judah Greenblatt	judah@bbt.com     919-405-4716
BroadBand Technologies, Durham, NC
--
!! This message is brought to you via the `tkined & scotty' mailing list.
!! Please do not reply to this message to unsubscribe. To subscribe or
!! unsubscribe, send a mail message to <tkined-request@ibr.cs.tu-bs.de>.
!! See http://wwwsnmp.cs.utwente.nl/~schoenw/scotty/ for more information.