This is the distribution of a DECnet Socket Layer for LINUX and a
set of utilities. The DECnet socket for linux implementation only
accepts outgoing connections. There is another project called Linux
DECnet that will provide a full implementation as well as routing
/Tunneling of the DECnet protocol.

This set of code is for running on kernel version 2.0.30 and probably
prior version (I've only tested it with 2.0.29). DECnet uses a chunk
of MultiCast addresses to deal with the routing stuff, but I've found
that most of Ethernet Drivers under linux lack the ability to deal
with Multicast. I developed this stuff on a DEC Alpha using a TULIP
card and had no problem at all with multicast, but if your card doesn't
support MultiCast, then you will have to refer later on this file
to see how to setup your DECnet node address.


INSTALLATION

In order to get this code running you will have to patch and reconfigure
your kernel. Make sure you are using kernel 2.0.30 or at least 2.0.29.

1) Create a temporary directory to untar the distribution file dnlinux.tgz

# mkdir dndist
# cd dndist
# tar xvfz dnlinux_tar.gz

Copy the decnet.diff file from this directory to /usr/src and do the
patching

# cp decnet.diff /usr/src
# cd /usr/src
# patch -p < decnet.diff

After patching the kernel you will have to reconfigure it.


# cd linux
# make config
 .
 .
 .
 The DECnet Protocol Socket Layer? y			! answer yes
 . 
 .
# make dep; make clean;
# make zImage

# cp arch/i386/boot/zImage /vmlinux.dec

Update your lilo configuration to boot the new kernel

# liloconf

(Create a new tag "Decnet" pointing to /vmlinux.dec)

Boot the new kernel


2) After rebooting you can check that the DECnet protocol is installed
   by typing

# cat /proc/net/decnet


3) Move to the temporary directory where you untared the distribution file
   and install the decnet utilities and configuration files.


# dninstal

  This will create executable for sethost, dndir, dntype, dncopy, and will
  also copy decnet.conf to /etc directory.

4) Now take a look at /etc/decnet.conf file. This is a self-explanatory file
   You will modify it to define which interface you will use DECnet on
   (default eth0) and will choose your decnet node address as well as
   the address of the other DECnet nodes you plan to communicate with.

5) Now you will start the DECnet socket Layer using the following command


# startnet			(You can include this in rc.inet1 for automatic
                                 startup)

   If your Ethernet Card works fine with multicast, you have done all the
   work and you can start using the applications. For example you can connect
   to a DECnet node emulating a terminal

   # sethost mv3100

   Otherwise, you are not lucky and you will have to change the address of 
   your Ethernet card in the init scripts according to the decnet address
   selected for your node.


   On DECnet networks, the physical address of the ethernet card is a function
   of the DECnet node address.

   The form of a DECnet physical address is

   AA:00:04:00:XX:XX

   The last two hex digits codify the DECnet node address. 

   A DECnet node address takes the form of area.node where 
   
   0 < area < 64 

   0 < node < 1024


   For example DECnet node 1.2  refers to area 1 and node 2.

   To code the DECnet node address into the DECnet Physical address
   we have 2 bytes (16-bits) Thus, we use 10 bits for the "node" and
   6 bits for the "area"

   Examples of ADDRESSES are:
                                                   Area__ Node______
   DECnet node 1.1        AA:00:04:00:01:04------- 000001 00
                                       |___________________ 00000001


   DECnet node 1.2        AA:00:04:00:02:04


   OK, after obtaining your DECnet Physical Address, you will have to
   assign it to the select interface on system start-up.

   To do that, change /etc/rc.d/rc.inet1 to contain a line at the very
   beginning with the following

   # ifconfig eth0 hw ether AA:00:04:00:02:04
   


SUPPORT

I am a full time worker so I cannot promise to provide you support, but
I will eventually answer any mail I receive. I started this work because
I wanted some kind of interaction between my favourites O.S. (VMS and LINUX).


APPLICATIONS

There are not many applications yet but hopefully there will be more
soon.

APP			Description
dndir			List directories on the VMS side
dntype			Type files on the VMS side
dncopy			Copies files from VMS to Linux
sethost			Terminal Emulation
			Hint: After connection, enter the following
                              command at VMS:
 
                              $ set term/dec_crt


Eduardo Marcelo Serrat

email: emserrat@geocities.com

