These are the release notes for U-Net version 2.1, 13-January-1998.
U-Net is a protected, user-level network architecture for low-latency and high-bandwidth communication. ATM, Fast Ethernet, and Myrinet are the network media supported with this release. Please see the U-Net documentation tree for general information about the system.
The latest U-Net software release can be obtained from ftp://ftp.cs.cornell.edu/pub/mdw/unet/. The documentation (including this file) is contained within the release; please be sure you are reading the newest version.
This release of U-Net supports the following network interfaces:
Note that FORE 200e series boards are not yet supported. Some changes to the i960 firmware are required, and the memory layout presented by the board appears to be different. We hope to have this working without much trouble.
This is an EXPERIMENTAL release of U-Net. A number of features are missing and bugs remain; see Bugs and Features below. Please contact the authors if you have questions or problems, but we emphasize that nothing is guaranteed to work.
All U-Net software and documentation is
Copyright (c) 1995, 1996 by Cornell University,
Copyright (c) 1997, 1998 by Matt Welsh.
All rights reserved.
Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software.
IN NO EVENT SHALL CORNELL UNIVERSITY OR MATT WELSH BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF CORNELL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
CORNELL UNIVERSITY AND MATT WELSH SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND CORNELL UNIVERSITY AND MATT WELSH HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
The U-Net source tree contains the following files/directories:
You will need, of course, an SBA-200 ATM adapter. The SBA-200e is
currently not supported, but we hope to have this ready soon.
U-Net also requires cache-coherency between system RAM and the SBus.
This means that cache-coherency sun4m systems only are supported,
such as SparcStation 10/20's and higher-end systems. SparcStation 5
systems are not cache-coherent with respect to the SBus.
U-Net requires a modified version of the firmware which runs on the
i960 on the SBA-200 board. This firmware is provided in the
fore-200/bin-sba200 directory as two binaries: One compiled
with debugging support, and another without. The uload program
(which we also provide) is used to download the firmware onto the i960.
It is a simple program which can be used from the command-line, or executed
at system boot-time. (Replacing the i960 firmware does not require the
burning of PROMs or replacement of chips on the board; the i960 firmware
is stored in RAM.)
To compile and run uload you will need two files, compiled from
the GNU i960 tools distribution: toolib.a and objcopy.
The most recent version of the i960 tools can be downloaded from
ftp://ftp.intel.com/pub/i960/gnu/.
For your sanity we provide binaries of
objcopy and toolib.a in the uload/i960-binaries
directory. We don't guarantee that these binaries will work for you; if
not, please compile them yourself from the i960 tools.
SunOS 4.1.x and Solaris 2.x are supported. The kernel driver is a
loadable module; you will not need to rebuild your kernel. Note that
use of U-Net is incompatible with use of the original FORE kernel drivers
or i960 firmware. This means that you cannot use the original FORE code while
the U-Net driver and firmware are loaded. However, it is relatively
easy to swich back and forth between the two. (Namely, reload the original
FORE device driver and firmware.) Under SunOS 4.1.x the FORE driver is
built into the kernel itself; you'll need to use a kernel without the FORE
driver installed.
The U-Net device does not handle signalling. For each channel of an application
endpoint, the application must tell the device which VPI/VCI to send outgoing
cells to and accept incoming cells from (send and receive can be
associated with different VPI/VCI pairs). Signalling is assumed to be
handled by some other code.
You will need, of course, a PCA-200 ATM adapter. The PCA-200e is
currently not supported, but we plan to add this in the near future.
As with the SBA-200, U-Net requires a modified version of the firmware
which runs on the i960 on the SBA-200 board. This firmware is provided in the
fore-200/bin-pca200 directory as two binaries: One compiled
with debugging support, and another without. The uload program
(which we also provide) is used to download the firmware onto the i960.
objcopy and toolib.a are needed from the GNU i960
tools distribution. For your sanity we provide Linux ELF binaries of
these in the uload/i960-binaries
directory. We don't guarantee that these binaries will work for you; if
not, please compile them yourself from the i960 tools.
Linux 1.3.x is supported. Not all versions of the Linux kernel may
work with this driver; our development systems run 1.3.45. Later kernels
should work but are untested. A small kernel patch is required to
add support for the ``U-Net Area'' memory allocation routines; see
the install directory.
As with the SBA-200, the U-Net device does not handle signalling.
The DC21140 ``Tulip'' PCI Fast Ethernet controller is used on a
variety of Fast Ethernet cards; we use the SMC EtherPower 10/100.
All that is required to use the U-Net/Tulip device is a board
which uses this chip (it is assumed that all DC21140-based controllers
will work) and the code here.
Linux 1.3.x is supported. Not all Linux kernel versions may work with this
driver; we run 1.3.45. A small kernel patch is required to add support
for the ``U-Net Area'' memory allocation routines; see the
installdirectory.
For connections to other machines, a Fast Ethernet hub or switch should be
used. A back-to-back Fast Ethernet connection can be made by mangling
a UTP5 cable and crossing the Tx/Rx lines (null modem). Normally the
DC21140 will not receive Ethernet packets sent to itself, so care should be
taken in writing user code not to expect loopback transmission to occur.
A #define in the Tulip kernel driver allows the DC21140 to be
placed into Full Duplex mode, where loopback will work; however, this
disables collision and carrier detection. If you want to use loopback,
you can (again) mangle a UTP5, connecting the Tx/Rx lines together to form
a ``stub'' cable.
The U-Net device uses Ethernet MAC addressing directly, not IP.
U-Net speaks its own Ethernet ``protocol'' whereby the first byte of
the Ethernet protocol ID field is 0x60, the second byte is
the ``port number'' (used to multiplex multiple connections on one
Tulip device) and the first two bytes of the payload contain the
``true packet length''. The net result is that U-Net packets won't
get routed through IP routers. In a future release we hope to use
a slimmed-down IPv4 framing to allow this.
The Myrinet interface for both SBus and PCI is supported with all
known memory configurations (256K, 512K, and 1024K).
Linux 2.x, BSD/OS 3.0, and Solaris 2.x are supported. In the case of
BSD/OS, the kernel driver is integrated with the original Myricom/Fast
Messages API driver although the board may only run in U-Net mode or
FM mode at a given time (depending on which LCP is loaded). For Solaris
and Linux the kernel driver is ``standalone'' meaning that it does not
depend on any other software. When the U-Net driver and firmware are
loaded the board may only be used for U-Net.
Under Linux a small kernel patch is required to add support
for the ``U-Net Area'' memory allocation routines; see the
installdirectory.
To compile the uload utility you will need to install the
LanAI binutils package available from Myricom. To compile
the LCP firmware (hopefully not needed; I've supplied a binary)
you'll also need the LanAI gcc package from Myricom. I don't
supply instructions on recompiling the LCP here; please e-mail if you
need help.
Far too complex to go into here, but the basic ideas are quite simple.
Please see the Resources listing for
papers, web pages, etc. which describe the U-Net design and implementation
itself. We have provided sources for everything possible; the ATM U-Net
implementation is, unfortunately, embodied in the firmware code which we
can't release. Contact us if you have
questions about how things work.
Known bugs:
Unsupported features:
System Requirements
FORE Systems SBA-200
FORE Systems PCA-200
DECChip 21140
Myricom Myrinet Interface
Design and Implementation
Bugs and (missing) Features
Return to U-Net Documentation.
M. Welsh, mdw at cs dot berkeley dot edu