Tcl_Snmp - Close But No Cigar

In the late 1980ies I was working in Luxembourg, upgrading the 1200+ PC’s of the European Parliament from “OliNet-LAN” [1] to TCP/IP.

As part of the conversion our company “Ambrasoft” tried to push some “Network Management” into the contract, but that fell through, basically because nobody in the European Parliament were in a position to take responsibility for the network and the machines, certainly not in a way where having a “Network Management Console” made any sense.

But before we got to that understanding, I had read through the SNMP RFCs etc.

My next job, in the IT-sub-company of FLS Engineering (they’ve built more cement factories than you know exists), was to support UNIX and the new ethernet LAN, which we rolled out over the central campus and its 2000+ engineers and associated technical draftsmen & -women.

The LAN was based on Synoptics, and since Synoptics had SNMP support that became a handy tool for figuring out who plugged what in where etc.

But the available SNMP software was clunky. Most of it was written as proof-of-concept, or even worse: To show off some OSI-protocol code-generator or other.

So I wrote an extention for the Tcl language to speak SNMP. No big deal really, but what a difference it made.

Now I could write Tcl scripts which ran in cron and produced a list of MAC addresses which had changed in the network, and I could monitor port-servers and the central spidery 28-ethernet Cisco AGS+ and a couple of minor Ciscos in the periphery.

The ‘Tk’ graphical package to Tcl made it possible to get a “remote view” of the switches, which came handy a few times, but which mostly was management eye-candy.

I posted my “Tcl_nm” in some newsgroup and went on to my next problem: A Textronix “Phaser” color printer and the necssary accounting system so printjobs could be charged to the appropriate department.

Glenn Trewitt of DEC Western Labs contacted me, and we tried to colaborate on a sensible syntax and more usable primitives, and then we got torpedoed by Marshall Rose who announced their own Tcl SNMP API in a book, based on a OSI-protocol-proof-of-concept-nightmare called “ISODE”.

Later again University of Twente released “Scotty” which certainly had some potential, but never really released the full potential of SNMP either.

There were plenty of commercial offerings too, Cisco had one, HP had one, Sun had one, IBM had one and so on.

But they all amounted to the same thing: You could draw a network-map and icons could turn red or maybe even yellow and with a few mouse-clicks you could have incomprehensible SNMP variables dumped in useless text-format.

Later they added graphing, so you could have small graphs of one of the incomprehensive SNMP variables, and maybe even alarm limits.

But that was still pretty useless.

At the first sign of network problems everything turned red, and the real issues it couldn’t do anything about or alert you to.

One very typical and very real issue was packet loss on leased lines.

To monitor/detect that, you need to correlate SNMP variables from two different devices, the router at either end of the line.

None of the SNMP software could do that: It was all totally device centered, and what’s worse: It was all locked down and proprietry, so you couldn’t even fix it yourself.

I had a little tcl_nm gadget which did it: It kept a running average of number of packets sent and received from the two routers and it told you how much they diverged, in packets per second and in “BER” - Bit Error Rate - which turbo-charged the telcos [2].

A job or two later I was the “old&wise guy” at Denmarks most disruptive ISP, “Cybercity”, and for all the youthfull enthusiasm of the crew, they didn’t always get the netmasks and such details right.

I had a tcl_nm script running constantly, which told me about machines coming and going and if there were SNMP responses, it would check routes, network masks and so on.

It gave some serious street-cred to call somebody up and tell them “The reason it doesn’t work is that you set the netmask wrong” long before they had found them problem themselves.

I never really persued the general “network console” idea with tcl_nm, it didn’t seem that useful to me, I’d rather have a one line text-message on and to the point, than continuously watching the blinkenlights.

When I needed to, I used Scotty to create network maps, here is one showing only the Cybercity routers, from semi-late 1990’ies:


I showed one of the Cisco SNMP people some of my tcl_nm gadgets during one of the first “Cisco Networkers” events in Europe [3] and he tried to hire me on the spot.

I considered the offer, but declined.

Even though I could have had an employee number in the high 700s, I’ve never regretted that: It was not like I actually liked SNMP or for that matter Tcl that much.