On Dec 18, 2012, at 6:58 PM, Rob Jarratt wrote:
-----Original Message-----
From: owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE]
On Behalf Of Paul_Koning at
Dell.com
Sent: 18 December 2012 22:30
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] Phase V Routing Specification
On Dec 18, 2012, at 5:07 PM, Rob Jarratt wrote:
http://bitsavers.trailing-edge.com/pdf/dec/decnet/EK-DNAPV-
GD_DECnet_Phase_V_General_Description_Sep87.pdf
Thanks for the link. I had a quick look. It does not go into the
details of the message formats, but it does say it interoperates with
Phase IV, so I just wonder if it was sufficient for me to accept Phase
V messages as if they were Phase IV and just ignore the version bytes.
I might just give that a quick go, which host is Phase V on HECnet now?
The way to interoperate with a version newer than what you implement is
to speak the protocol as you know it. That includes ignoring fields
you're
supposed to ignore, and messages for protocols (such as Ethertypes or
802.2
DSAPs) you don't implement. If you do that, the rest is up to the newer
version.
What I am doing is checking for routing specification 2.0.0 (in the hello
messages), but not checking for later versions. I have disabled the check
temporarily and it seems to work. But I seem to be getting
EthernetRouterHello messages from node 12.2 with the R/S LIST always empty,
so I never get an adjacency with the node. Not sure if this is because I am
not sending myself to 12.2, but an empty list suggests it can't talk to any
of the other routers in the network.
I see... yes, the way to handle version numbers is in the spec. Basically, it follows
the principle I described. Examine the received version number. If it's less than
yours, speak that version (if you know how). If it's the same, or greater, speak
your version. If the other end announces a greater version number, it will speak to you
in what you announced, or give up if it doesn't know how to do that.
This rule is used consistently in DECnet -- we defined this at some point as the general
rule of version numbers, it's the easy and reliable way for cross-version
compatibility to work. All it requires is that you can find the version number in the
first message you see. (For example, in III-IV compatibility, if I remember right, the
version number in the first message is checked first even though a bunch of fields precede
it, because those fields depend on the version number. Or maybe I'm thinking of
II-III compatibility. I can find the code if I search long enough... it was somewhere in
DECnet/E.)
paul