.. _tclsnmp:

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" [#f1]_ 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 [#f2]_.

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:

.. image:: tcl_snmp_fig1.png
	:width: 100 %

I showed one of the Cisco SNMP people some of my tcl_nm gadgets
during one of the first "Cisco Networkers" events in Europe [#f3]_
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.


*phk*

.. [#f1] OliNet-LAN was a OSI protocol based NETBIOS product which used
	AT&T/WE 3B2 UNIX servers and were a horror in more ways
	than imaginable, but that is a saga for another day.

.. [#f2] If you called the telco monopoly and told them you saw packet loss,
	they invariably blamed your equipment, but if you told them that
	you had a BER of 5e-8, they assumed you had measured the line with
	"real" telco T&M equipment, and the got on the case.

.. [#f3] You had to sign up with some secretary in the USA.  I asked her
	if she knew that München had a HUGE "Bier-festival" around that time?
	After a shocked silence she asked "Are we in the middle of that?" and
	sounding as dissapointed as I could, I told her: "No, unfortunately not."