U-Net:
A User-level Network Interface Architecture.

Matt Welsh

Last updated 25 February, 1998


Introduction. The U-Net architecture provides low-latency and high-bandwidth communication over commodity networks for workstations and PCs. It achieves this by virtualizing the network interface such that every application can send and receive messages without operating system intervention.

This page details the U-Net work being conducted by Matt Welsh, now at UC Berkeley. Other work on U-Net (primarily under Windows NT) is continuing at Cornell; here is the original Cornell U-Net Project Page. One of the exciting developments in this area is the introduction of the Virtual Interface Architecture (VIA) by Intel, Compaq, and Microsoft. VIA was heavily influenced by the U-Net design and we hope that future versions of the specification will adhere to its philosophy.

News.

U-Net Release 2.1 for UNIX. I have made available U-Net 2.1, which supports the Myrinet PCI and SBus interfaces, DECChip 21140 Fast Ethernet PCI interface, and the FORE Systems PCA-200/SBA-200 ATM interfaces. Get it here, or read the release announcement.

The U-Net 2.1 distribution was updated on 25 Feb 1998 to include a kernel patch which solves the unresolved symbol problems on Linux 2.0.30 kernels. (25 February 1998)

U-Net/SLE: An extensible user-level network interface. I am currently working on U-Net/SLE (Safe Language Extensions), a modification to the U-Net design which enables applications to safely download applets into the network interface, thus pushing protocol processing to the NI level. The primary goal is to assess the performance tradeoffs involved in doing protocol processing on the NI in conjunction with user-level networking. Here is the U-Net/SLE home page. (30 September 1997)

Dynamic Memory Management for User-level Network Interfaces. I'm working to loosen the dependence of U-Net on permanently-pinned memory segments for communication endpoints. Our approach, dubbed U-Net/MM, incorporates a TLB into the NI which allows pages to be dynamically pinned/unpinned as required for DMA operations, and enables true zero-copy messaging as any buffer in the user address space may be used for transmission/reception.

We have three implementations: On the FORE Systems PCA-200 under Linux, the DC21140 Fast Ethernet controller, and the Zeitnet ATM NIC (both under Windows NT). Results were presented at the Second NoW/Cluster Workshop at ASPLOS-VII on 1 October 1996, and Hot Interconnects V at Stanford, August 21-23 1997.

Software.

U-Net Release 2.1 for UNIX. This release supports the Myrinet PCI and SBus interfaces, DECChip 21140 Fast Ethernet PCI interface, and the FORE Systems PCA-200/SBA-200 ATM interfaces. Supported operating systems include Linux, SunOS 4.x, Solaris 2.x, and BSDI. All source code (except for the FORE PCA-200/SBA-200 i960 firmware) is included, and is released under a BSD-like license.

You can obtain the release as unet-2.1.tar.gz. The release documentation is also on-line (and included in the release). For questions or comments please contact Matt Welsh.

U-Net Release 0.9 for Windows NT. This release supports the DECChip 21140 Fast Ethernet controller and the Zeitnet PCI ATM interface using the NEC uPD98401 SAR under Windows NT 4.0. This software also includes the U-Net/MM memory management extensions, which allow buffer pages to be swapped to disk, and any virtual address to be used for transmit/receive (thus enabling `true' zero-copy). The software is available in source and binary (for ix86) form. Release notes are also available.

Papers.

User Customization of Virtual Network Interfaces with U-Net/SLE, D. Oppenheimer and M. Welsh. UC Berkeley Tech Report CSD-98-995, February, 1998.

Incorporating Memory Management into User-Level Network Interfaces, M. Welsh, A. Basu, and T. von Eicken, Hot Interconnects V, Stanford, August 21-23, 1997.

ATM and Fast Ethernet Network Interfaces for User-Level Communication, M. Welsh, A. Basu, and T. von Eicken, in Proceedings of High-Performance Computer Architecture 3, San Antonio, February 1997.

Low-Latency Communication over Fast Ethernet, M. Welsh, A. Basu, and T. von Eicken, EuroPar '96, Lyon, France, August 1996.

Talks.

The slides for U-Net/SLE: A User-extensible, User-level Network Interface Architecture, given at the Winter '98 Berkeley NOW retreat, Tahoe, January 14 1998.

The slides for U-Net: A Protected, User-Level Network Interface Architecture, part 1 of a seminar given at SERI, Taejon, Korea, 27 October 1997. This talk is the best general overview of the U-Net system.

The slides for U-Net/Myrinet and U-Net/MM: Code Structure and Implementation, part 2 of a seminar given at SERI, Taejon, Korea, 27 October 1997. This talk describes the U-Net source code in detail.

The slides for Incorporating Memory Management into User-Level Network Interfaces, given at Hot Interconnects V, Stanford, August 21, 1997.

The slides for ATM and Fast Ethernet Network Interfaces for User-Level Communication, given at HPCA-3, San Antonio, February 5, 1997.

The slides for Low-Latency Communication over Fast Ethernet, given at EuroPar '96, Lyon, France, August 1996.