I've seen/heard of various stories about how people update their
nodename databases on their machines, hacking together scripts, and
processing files. So I figured I should write a small mail about the
topic (I should create a web-page with this information as well).
The main/basic point is that people are creating work for themselves
they really don't need.
Exactly how you update your nodename database on your machine depends on
what OS you are running, but there are basically prepared tools and
scripts already existing for pretty much any scenario. And if you happen
to have a system or need not currently covered, I can easily create one
for you as well.
But before going into the solutions, let me explain a bit about the
source of the data here.
DECnet phase IV do not have a centralized nodename system like DNS. Each
node in the DECnet network has its own nodename database, and every
machine can have its own name for another machine, independent of what
that other machine thinks its own nodename is.
However, in order to make it easier for multiple people and machines to
talk, it helps if everyone have a somewhat similar database. And here is
where the nodename database in MIM comes it. The nodename database that
I have on MIM is not the regular DECnet nodename database. Instead I'm
using DATATRIEVE to maintain a nodename database, which contains more
information than just the number and name. It contains the owner,
information about the software and hardware of the node, the location,
and when things were updated. This database is what is queried when
someone goes to http://mim.stupi.net/nodedb . And that page is generated
by just making queries in DATATRIEVE. If someone have a host with
DATATRIEVE on it, it is even possible to remotely access this DATATRIEVE
database over DECnet (you'll only have read-only access).
I have been considering possibly adding a web interface for people to
possibly be able to update their own information remotely, but so far
that's been a low priority thing. Maybe one day...
From this DATATRIEVE database I can then generate the DECnet nodename
database on MIM. This is a simple makefile actually. Whenever I run it,
it will create a bunch of different files (I'll get to that in a
moment), and detect if any changes have happened on the DECnet level of
things. If so, it will send a mail to people who have requested it,
informing them that the nodename database have been updated, and they
should update the nodename database of their own machines.
I hope this makes it apparent that creating various files based on the
nodename database is actually very simple. This is in a sense what
DATATRIEVE is good at. Creating reports is sortof what all these output
files are.
So - what files do I create today? Well, here is a short list:
FIX.CMD - This is a script file suitable for RSX systems using CFE.
However, it's sortof specially tailored for MIM, so it's not a file I
would recommend anyone else to use.
FIX.COM - This is a script for VMS systems using phase IV.
FIX.PHV - This is a script for VMS systems using phase V.
FIX.IMP - This is a script for VMS for anyone using DECdns.
FIX.T20 - This is a script for TOPS-20.
HECNET.PY - This is a definition file for PyDECnet.
FIX.RST - This is a script for RSTS/E.
NODENAMES.DAT - This is basically just the basic information is a simple
output form from DATATRIEVE. It exist mostly for historical reasons, but
I understand that lots of people actually take this file, and then write
code to process, extract and apply information from this file.
In addition, some systems can directly import nodenames from another
machine on DECnet, meaning you do not have to fetch and run any scripts
at all.
So here is the actioins you need to do on each system in a summarized form:
RSX:
In RSX, there is a tool called NNC which copies definitions from another
node. Copy over MIM::HECNET:NNC.BAT which is a batch file you can use
which does all the work of importing the latest definitions from MIM and
updating your local system. All you need to do is just "SUBMIT NNC.BAT"
and you are done.
VMS:
With phase IV, the node copy capability is build into NCP. All you need
to do is: "NCP COPY KNOWN NODES FROM MIM TO BOTH" and you are done.
With phase V, copy over FIX.PHV and run it, or just directly run it from
MIM like this: "@MIM::HECNET:FIX.PHV"
If you run DECdns, grab FIX.IMP, and run it with whatever tool is used
to manage this (sorry that I can't help more, I don't really have any
experience with DECdns).
TOPS-20:
Grab MIM::HECNET:FIX.T20 and run in in the NCP submode of OPR (if I
remember the setup correctly).
RSTS/E:
Grab MIM::HECNET:FIX.RST, and run it with "@FIX.RST".
PyDECnet:
Fetch hecnet.py by doing "wget mim.stupi.net/hecnet.py". Place that
where you have configured PyDECnet to get the nodenames from, and you
are good (not sure if you need to restart PyDECnet).
Now. If you have some other system with some specific format you need,
just let me know, and I'll create such a file as well. It's trivial for
me to do this from DATATRIEVE. If you spot something wrong/bad in some
file created today, let me know, and we'll fix it. If you see any errors
or omissions in the information in this mail, let me know, and I'll get
it corrected. I will create a web page with this information as well.
If you want to get a mail whenever the nodename database is updated,
just let me know and I'll add you to the list.
And HECnet is slowly growing. Occasionally a completely new person/site
gets connected. Occasionally people add more nodes. The online presence
seems pretty constant. At the moment 19 areas are online. In area 1,
currently there are 19 machines online. Looking at Paul's HECnet map
(http://akdesign.dyndns.org:8080/map), there are machines online in
quite different locations, covering a large part of the world. I find
this cool, and even though there isn't a lot being done, it's still fun.
Well. Have a nice weekend everyone, and I hope some people find this
information useful.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Hi,
There will be an IP address change for inbound/outbound DMC, Multinet, GRE and GRETAP connections to A29RT2 (29.2) tomorrow (27th Feb) at around 11:00 UTC.
82.70.71.174 will change to 77.104.155.22
There will be no change to the IPv6 prefix... apparently.
Please update your routers accordingly... and keep the previous config around, just in case. What could possibly go wrong?
Regards
Keith
Hi Johnny et al.
Some new nodes to be added to the HECnet registry please.
BUZZEL 29.113
CORRIN 29.114
Both are VMS 9.2.2 x86-64 running under Debian Qemu/kvm. They are clustered together via shared virtual SCSI discs. Seem to be working quite well.
Terrible timing however, what with the bombshell VSI just dropped about the community licences. I'm tempted to become an Ambassador - I may have something to contribute in the VMS runtime department, along with LLVM. Ah well.
Regards
Keith
I discovered a pernicious boot race condition in FAL. Early in system
start up, only the boot structure (which may not be the login
structure), is recognized by Tops-20. MOUNTR has to start and identify
those other structures which should be made available and their
settings, which it does by looking at where they are persisted in
SYSTEM:DEVICE-STATUS.BIN file. Until MOUNTR has completed structure
identification, any RCDIR% might fail for a non-boot structure. This is
exactly what happens for FAL, which is running asynchronously and
sometimes crashed during start up.
One quick and dirty hack was to simply wait to start FAL, which I did,
but that has its own problems which I won't detail here. I tried some
other hacks, such as doing the mount from the EXEC, which had other
different drawbacks.
The real thing to do is to issue a mount request for the structure from
FAL itself and--once Galaxy is up and running--is processed, will make
RCDIR% safe to do (or safer, anyway). At any rate, there should be no
timing issue in this case. As Columbia's Galaxy programmer in the
1980's and having done some minor work in LCG's Galaxy group in the late
1970's, I actually knew how to do such a request and did so, having
written some sub-routines to issue queue requests for our ID system in
the 1980's.
So, I decided to fix FAL to 'do the right thing' and wound up down
another rabbit hole. I should emphasize "/knew/ how to do", as doing
that kind of Galaxy IPCF request is kind of hairy, particularly if you
haven't done it in four decades. After I looked at it for a while, I
grew despaired at having to relearn it again.
Incredibly, DEC defined a new JSYS called QUEUE% which seemed to do the
trick. Briefly, it performs certain Galaxy requests on behalf of the
user, converting it's simpler calling format to an internal Galaxy
format, getting a PID, and returning the response. QUEUE% does a lot of
cool things, including mount requests. Or at least it's documented to...
Besides having its own bugs, there is no code in Galaxy handle a mount
request from QUEUE%... The simpler format that QUEUE% is using is
actually something that Quasar internally calls a 'short' queue request,
which I had known about back in the day. What happens is that the
QSRQUE module converts it into the regular ('long') format and away you
go. This works fine for printing, plotting, punching, and other kinds
of spooling requests, including batch jobs.
There is no short format for mounting, QSRQUE has no code for this
because mount requests are dispatched to MOUNTR... Nothing is persisted
in the failsoft file. So I wrote a conversion routine to do exactly
that before the request makes it to QSRMDA and thence to MOUNTR.
Naturally doing all that resulted in a hailstorm of other issues as I
pushed things a little farther than they had been designed for.
It happens. I'm working through everything, bit by bit.
Tops-20 has a version of the VMS PHONE protocol that I look at from time
to time.
Is there a published specification for this anywhere? I'd like to maybe
do some work on the Tops-20 code, but I'd prefer not to reverse engineer
what I don't have to.
Besides VMS and Tops-20, what other systems speak PHONE?
I finally got my issues with Comcast straightened out and I now have static IP addresses. They are
IPv4: 50.185.8.122
IPv6: 2603:300b:6c4:21a0:c77b:4f58:27e4:6de2
These are also always available in DNS as decnet.theberrymans.com <http://decnet.theberrymans.com/>
Hopefully, this will be the last change for a while.
Mark Berryman
Area 27