Welcome to the home page of the Linux DECnet project. Our aim is to write a DECnet networking layer for Linux and to develop user programs and tools to allow communication between Linux hosts and other DECnet nodes.
DECnet was developed by Digital (now Compaq) for their range of computers, however they made the specifications freely available.
Currently the DECnet layer for Linux is in a beta state. It is usable if you are prepared to put up with the occasional system crash and prepared to do a bit of debugging. If you think this sounds like you, take a look at the contributions page to see how you can help us.
DECnet is an integral part of the latest development kernel series (2.3.xx) and is available as a patch to the latest stable series kernels (2.2.xx). Sometimes patches to the current development series kernels will appear on the FTP site, but they should be regarded as very very alpha until they actually appear in the kernel. Little development has been done upon the 2.2.xx patch recently, mainly due to lack of time. There are many bug fixes and enhancements in the 2.3.xx kernels which have not been back ported into the 2.2.xx kernel patch at the current time. There have been major changes in the Linux kernel networking subsystem between 2.2.xx and the current development kernels; I am focusing my development efforts upon getting the new kernels stable with respect to DECnet rather than bothering too much with the patch for the older kernels. Of course if someone wants to take up the challenge of looking after the older patch series and back porting the recent changes, then I'd offer pointers to what needs doing.
To use Linux DECnet, you will need a patches 2.2.xx kernel or a stock 2.3.xx kernel. Instructions for configuring DECnet is included in the patch (for 2.2.xx) or in the Documentation/networking/decnet.txt file (for 2.3.xx). You will also need some userland tools which are available from Patrick Caulfield's Web Site along with instructions upon how to use them. If you wish to write your own applications, documentation is provided here for sysctl and more general programming with Linux DECnet. As a general rule the socket API has tried to maintain POSIX compatibility.
For sometime, there has been a plan to support DECnet routing as well as EndNode operation. The routing operation has been some time getting written. This has been for various reasons, not least of which was the fact that I wanted to survey the possible internal organisation of the code in order to make the code fast and clean. After some time, the conclusion was reached that the routing code should use hash tables of variable size more or less identical to the system already in use by the Linux IPv4 implementation. This routing implementation is now in place, but is considered rather alpha in nature since it has not been tested.
If you want to try the new routing code out, there are a few things which you'll need to know about. Firstly, to configure it you'll need Alexey Kuznetsov's iproute2 package. This is available from ftp://ftp.inr.ac.ru/ip-routing/ and various mirrors (of which ftp://ftp.sucs.swan.ac.uk/pub/Linux/ip-routing/ is one). Only static route configuration is available currently, dynamic routing requires an (as yet unwritten) user level daemon. In order to make a network interface send router hello messages, you'll need to enable it by setting /proc/sys/net/decnet/conf/<dev>/forwarding to 1 (for L1 routing) or 2 (for L2 routing). This only controls the identity which the node sends in the hello message on that interface. If you want to ensure that you only forward within a single area you need to set up the routing table to enforce that as well. At this time there is no other documentation for using iproute2 with DECnet, but the syntax is pretty much the same as with IPv4/IPv6 except that some commands are not fully supported. When documentation does become available, it will be distributed with the iproute2 package.
The Linux DECnet project was at the UKUUG Linux99 Conference. I presented a talk based upon the article Patrick Caulfield and I wrote for Linux Journal a little while ago. It also included more recent developments as well. The proceedings should be appearing online sometime soon, but in the mean time, send me email if you'd like to see what I spoke about.
There is a mailing list for those interested in the Linux DECnet project. Send a message to majordomo@dreamtime.org with the body
subscribe linux-decnetto join the list. To start with the list is more aimed at developers, but as the code becomes more stable, it will start to cover user questions as well.
Linux is a trademark of Linus Torvalds.
DECnet, VAX, OpenVMS and VMS are trademarks of
Compaq.
We would like to acknowledge the help of
Compaq in providing information about the finer details of DECnet.
In particular, we would like to thank Jon "maddog" Hall and Paul Beck.
Many other people have helped in the production of Linux DECnet in various ways. Thanks to all of you who contributed to the project.