Linux DECnet Project

[Title]

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.


Legal Status of the Project

[Legal] Please read this page if you have not already done so, it contains all the information upon the copyright of the code and the relationship between this project and Compaq.

Current Status

[Status] Given here are the latest progress reports. This page is getting a bit big - I'm considering changing it to separate pages for each month or so when I get the time.

Programming Interface

[Programming] Information on how to write programs for Linux DECnet. Includes overviews of the major structures and system calls. This information will evolve along with the kernel patch to try and reflect the latest state of development.

How to Contribute

[Help] If you are interested in getting involved with development, then look here to see ways in which you can help with the project.

FTP Sites

[FTP Sites] Links to FTP sites which contain code from the Linux DECnet Project.

WWW Sites

[Links] Links to other www sites of interest to Linux DECnet Project developers.

Mailing List

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-decnet

to 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.

Acknowledgements

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.


Linux DECnet Project Home Page / Steve Whitehouse / SteveW@ACM.org