These are the release notes for U-Net version 2.0, 10-March-1996.
Last modified 11-Mar-96 by M. Welsh
U-Net is a protected, user-level network architecture for low-latency and high-bandwidth communication. ATM and Fast Ethernet are the two 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:
This is a PRELIMINARY 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.
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 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 SPECIFICALLY DISCLAIMS 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 HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
The U-Net source tree contains the following files/directories:
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.)
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.
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.
Return to U-Net Documentation.