Cameron Laird's personal notes on Scotty

"I've found scotty to be the most impressive snmp package of any language I've been able to locate, for any language. It's powerful and easy to use. I've been using it at work for around 4 years, and I can't say enough positive things about it.": these unsolicited remarks from Rob Seeger are typical for those who have experienced Scotty for themselves.

Late-breaking news

I currently use a 3.0.0 snapshot (which Juergen categorizes as "in general not ready and thus should be considered to be alpha software") from the development archive. This particular version is still labeled 2.1.10. 2.1.10 itself doesn't work easily with Tcl after 8.0x. Several of the nominal mirrors in fact are behind the times. Also, as of 2000, anonymous CVS has become the correct access method, rather than through the FTP repositories. [More on this, later.] The installable Win* snapshot from October 1999 works for me on simple tasks; more on this, later ... Juergen calls it a "beta", of course, which means it's a second or third update to a final, by the standards of most organizations.

Introduction

As Doug Hughes <doug@eng.auburn.edu> put it in <DC2JIw.Jry@mail.auburn.edu>, Juergen Schoenwaelder's scotty is a "network rapid prototypers dream tool in combination with tcl/tk", for "it does rpc, icmp, tcp, udp, and ... portmap probes" along with SNMP, CMIP, DNS queries, and job scheduling. Juergen gives an overview of the available SNMP extensions, a (PostScript-ized) description of scotty capabilities, a home page for the project, and a FAQ.

I'm currently working on a course called "Network Management with Scotty".

Juergen's in a peculiar position as creator of a major project. He's deeply knowledgeable about network management, has marvelous plans for Scotty's enhancement, and is responsive in maintaining it. At the same time, other commitments permit him to invest little in new Scotty work (8 February 2000):

The time I have to work on the scotty package is very limited. The current CVS version is based on Tcl/Tk 8.2. There are still some places where mutex locks are missing. But the goal is to make scotty Tcl thread safe. Another work item is the replacement of the current MIB parser with the libsmi. And then there are lots of minor things that need work, such as a replacement for the udp command which will work with binary data, a replacement of the % substitution mechanism, and full SNMPv3 support. Since I will not have the time to do all this in the foreseeable future, I will probably do these things in pieces.

Regarding tkined, I plan to integrate some of the patches that are floating around. But I won't change it much since it has to be split into a client/server application. The core is already there as part of the Tnm::map command. What is missing is a communication layer so that you can plug Tnm::maps together with automatic synchronization and event forwarding. I have no clue whether this will ever happen.

KM Newnham presents the marvelous public service of "Getting Started with tkined/scotty", a network-management primer.

Why scotty, and not snmptcl, for network management application development? I know Juergen answers his e-mail, that he tracks revisions in base Tcl, and that scotty works; moreover, it has extensive URL-able documentation. At least the latter is not true for snmptcl. On the other hand, Rose does employ snmptcl in at least two of his books, and Juergen reports that there is an active group around Rose advancing the tool.

Why Tcl? Juergen explains that, too.

[Explain what happened to FAQ.]

[Explain MIB support. Show which are supported, and how to do more.]

[Explain versions.]

Various extensions and platform considerations

My own work

I more-or-less regularly use Scotty from HP-UX, Solaris, SunOS, BSD/386, AIX, and Digital Unix; I'm now (mid-1997) working mostly with Tcl7.6, Tk4.2, and Scotty2.1.5, a combination which requires at least a minimum of source modification. I'm just starting with the Intel-based WNT port. Note that Juergen supplies a current porting.notes in each distribution. Beyond the information there, I've found I need to know that, for

Other extensions

Scotty was originally done as part of a larger project leading to tkined. The recommended mailing list for questions about Scotty is still named after tkined.

Ian Jarrett <etlinjt@etlxdmx.ericsson.se> and <ian@batfink.netmc.com> has taken the natural step and combined Expect and Scotty into an application he calls Beast. I call this natural because it answers so many of the questions that arise in "network interrogation and intelligent configuration of nodes," as Mr. Jarrett puts it. [Update: Beast, or at least my link to it, is not current. More on this, in time.]

The new 7.5-compatible Scotty 2.1.0 has

a new -window session option. You can for example specify a window of size 10 and the protocol engine will make sure that no more that 10 async requests are actually on the wire. If your script creates more than 10 requests, scotty will queue them until the number of active requests drops below 10. This solution is transparent to the script which can create hundreds of async requests if it likes to do so,
as Juergen explained in a letter to the mailing list.

The addinput patch to Tk, which provides callbacks for file events, is compatible with scwish, but not required.

Web-accessibility

Yu Mingjian has written a web-oriented network managing extension to Scotty.

Implementation details

Scotty's CMIP services employ the OSIMIS library (in its version 3.3?).

Reservations

Job scheduling is limited. Juergen has explained, "Jobs are just a handy tool to describe things that should be done at regular intervals. If the interpreter is busy doing other things, the jobs are simply delayed." Jobs are not threaded; only a single one can be scheduled at a time. Much of what one wants from scheduling is thus not available, but I think that's OK. It's more important that the main line of scotty development be elsewhere.

Juergen has explained one limitation on display formats in a letter to the mailing list.

Other notes

Look in the examples directories; they're valuable. Also, remember to use "tcpdump" and "snmp watch on".

Peter Maersk-Moller has provided a refined ip_world.


Cameron Laird's notes on Scotty/claird@phaseit.net