On Dec 14, 2015, at 10:44 AM, Cory Smelosky <b4 at
gewt.net> wrote:
If you can't find any docs, I might have time to packet capture today.
I went through this a while ago. I thought I posted the answer to this list at that
time.
In any case, here is the summary (from pydecnet/decnet/multinet.py which you can use as a
reference if desired).
See multinet.c
in the DECnet/Linux "dnprogs" source code for an earlier implementation
that reasonably well describes how it works..
In a nutshell: this uses UDP datagrams or a TCP connection. For
the UDP case, data packets are sent as UDP datagrams, preceded by
a four byte header consisting of a two byte sequence number
(little endian) plus two bytes of zero. It's not clear that
header is used by the receiver; it isn't in the Linux code. The
data then follows that header with no other processing. For TCP,
there is also a four byte header, but in this case the first
two-byte field is the payload length (the amount of data after the
4 byte header, little endian).
Also: the payload is the Point to Point packet payload, NOT the Ethernet format packet.
That is key, and it explains why Multinet works so poorly if either end restarts, since
the datalink requirements of the DECnet routing layer are massively violated by the
Multinet approach.
paul