(this is an extract from src/share/examples/atm/README)

===================================
                HARP  |  Host ATM Research Platform
                ===================================

                              HARP 3

What is this stuff?
-------------------
The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center,
Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed
the Host ATM Research Platform (HARP) software, which allows IP hosts to
communicate over ATM networks using standard protocols.  It is intended to
be a high-quality platform for IP/ATM research.

HARP provides a way for IP hosts to connect to ATM networks.  It supports
standard methods of communication using IP over ATM.  A host's standard IP
software sends and receives datagrams via a HARP ATM interface.  HARP provides
functionality similar to (and typically replaces) vendor-provided ATM device
driver software.

HARP includes full source code, making it possible for researchers to
experiment with different approaches to running IP over ATM.  HARP is
self-contained; it requires no other licenses or commercial software packages.

HARP implements support for the IETF Classical IP model for using IP over ATM
networks, including:

   o IETF ATMARP address resolution client
   o IETF ATMARP address resolution server
   o IETF SCSP/ATMARP server
   o UNI 3.1 and 3.0 signalling protocols
   o Fore Systems's SPANS signalling protocol

What's supported
----------------
The following are supported by HARP 3:

   o ATM Host Interfaces
        - FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters
        - FORE Systems, Inc. PCA-200E ATM PCI Adapters
        - Efficient Networks, Inc. ENI-155p ATM PCI Adapters

   o ATM Signalling Protocols
        - The ATM Forum UNI 3.1 signalling protocol
        - The ATM Forum UNI 3.0 signalling protocol
        - The ATM Forum ILMI address registration
        - FORE Systems's proprietary SPANS signalling protocol
        - Permanent Virtual Channels (PVCs)

   o IETF "Classical IP and ARP over ATM" model
        - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5"
        - RFC 1577, "Classical IP and ARP over ATM"
        - RFC 1626, "Default IP MTU for use over ATM AAL5"
        - RFC 1755, "ATM Signaling Support for IP over ATM"
        - RFC 2225, "Classical IP and ARP over ATM"
        - RFC 2334, "Server Cache Synchronization Protocol (SCSP)"
        - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt,
                "A Distributed ATMARP Service Using SCSP"

   o ATM Sockets interface
        - The file atm-sockets.txt contains further information

What's not supported
--------------------
The following major features of the above list are not currently supported:

        o UNI point-to-multipoint support
        o Driver support for Traffic Control/Quality of Service
        o SPANS multicast and MPP support
        o SPANS signalling using Efficient adapters

This software was developed under the sponsorship of the Defense Advanced
Research Projects Agency (DARPA).

Reviewed (lightly) by:	phk
Submitted by:	Network Computing Services, Inc.
This commit is contained in:
Poul-Henning Kamp 1998-09-15 11:44:44 +00:00
parent e2efbdd232
commit 3f8c45065e
14 changed files with 267 additions and 21 deletions

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile.inc1,v 1.12 1998/09/10 00:27:57 obrien Exp $
# $Id: Makefile.inc1,v 1.13 1998/09/15 07:46:17 gibbs Exp $
#
# Make command line options:
# -DCLOBBER will remove /usr/include
@ -476,13 +476,13 @@ bootstrap:
rm -f ${DESTDIR}/usr/src/sys
ln -s ${.CURDIR}/sys ${DESTDIR}/usr/src
cd ${.CURDIR}/include; find -dx . | cpio -dump ${DESTDIR}/usr/include
.for d in net netinet posix4 sys vm machine
.for d in net netatm netinet posix4 sys vm machine
if [ -h ${DESTDIR}/usr/include/$d ]; then \
rm -f ${DESTDIR}/usr/include/$d ; \
fi
.endfor
cd ${.CURDIR}/sys; \
find -dx net netinet posix4 sys vm -name '*.h' -o -type d | \
find -dx net netatm netinet posix4 sys vm -name '*.h' -o -type d | \
cpio -dump ${DESTDIR}/usr/include
mkdir -p ${DESTDIR}/usr/include/machine
cd ${.CURDIR}/sys/${MACHINE_ARCH}/include; find -dx . -name '*.h' -o -type d | \

View File

@ -1,4 +1,4 @@
# $Id: BSD.include.dist,v 1.18 1998/09/14 08:34:45 obrien Exp $
# $Id: BSD.include.dist,v 1.19 1998/09/15 10:21:53 gibbs Exp $
#
/set type=dir uname=root gname=wheel mode=0755
@ -25,6 +25,8 @@
..
netatalk
..
netatm
..
netinet
..
netipx

View File

@ -1,5 +1,5 @@
# From: @(#)Makefile 8.2 (Berkeley) 1/4/94
# $Id: Makefile,v 1.82 1998/09/09 11:13:55 kato Exp $
# $Id: Makefile,v 1.83 1998/09/15 10:22:37 gibbs Exp $
#
# Doing a make install builds /usr/include
#
@ -40,7 +40,7 @@ PFILES= mqueue.h sched.h semaphore.h \
LFILES= errno.h fcntl.h poll.h syslog.h termios.h
LDIRS= msdosfs net netns netatalk netinet netipx netkey nfs \
LDIRS= msdosfs net netns netatalk netatm netinet netipx netkey nfs \
pccard posix4 sys vm cam \
# netccitt netiso

View File

@ -1,5 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 6/4/93
# $Id: Makefile,v 1.77 1998/09/07 13:59:15 bde Exp $
# $Id: Makefile,v 1.78 1998/09/15 10:22:54 gibbs Exp $
# To satisfy shared library or ELF linkage when only the libraries being
# built are visible:
@ -13,7 +13,7 @@
# Otherwise, the SUBDIR list should be in alphabetical order.
SUBDIR= ${_csu} libcom_err ${_libcrypt} libmytinfo libtermcap \
${_compat} libalias libbind libc ${_libc_r} libcalendar libcam \
${_compat} libalias libatm libbind libc ${_libc_r} libcalendar libcam \
libcompat libcurses libdevstat ${_libdisk} libedit libf2c libfetch \
libftpio libgnumalloc libipx libkvm ${_libm} libmd libncurses libopie \
libpcap libresolv librpcsvc ${_libscsi} libskey libss libstand \

View File

@ -28,6 +28,20 @@ specifically marked as [MERGED] features.
KERNEL CHANGES:
o The Host ATM Research Platform ("HARP") software by Network
Computing Services, Inc. have been intergrated.
See /usr/src/share/examples/atm for more info.
o The code responsible for maintaining time of day have been
rewritten. New features are: true support for nanoseconds in
both kernel and userland, continuous rather than stepwise adjustment
by NTPD, support for synchronizing to high precision external time
signals.
o Support for the PPS API described in draft-mogul-pps-api-02.txt for
TTL rising edge inputs via the parallel printer port.
been added to the parallel printer
o The code from 4.4BSD-Lite2 has been (finally) merged.
o The SMP (Symmetric MultiProcessing) branch has been merged.
@ -467,8 +481,33 @@ Note that NO token ring cards are supported at this time as we're
still waiting for someone to donate a driver for one of them. Any
takers?
2.3 ATM
-------
2.3. Misc
o ATM Host Interfaces
- FORE Systems, Inc. PCA-200E ATM PCI Adapters
- Efficient Networks, Inc. ENI-155p ATM PCI Adapters
o ATM Signalling Protocols
- The ATM Forum UNI 3.1 signalling protocol
- The ATM Forum UNI 3.0 signalling protocol
- The ATM Forum ILMI address registration
- FORE Systems's proprietary SPANS signalling protocol
- Permanent Virtual Channels (PVCs)
o IETF "Classical IP and ARP over ATM" model
- RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5"
- RFC 1577, "Classical IP and ARP over ATM"
- RFC 1626, "Default IP MTU for use over ATM AAL5"
- RFC 1755, "ATM Signaling Support for IP over ATM"
- RFC 2225, "Classical IP and ARP over ATM"
- RFC 2334, "Server Cache Synchronization Protocol (SCSP)"
- Internet Draft draft-ietf-ion-scsp-atmarp-00.txt,
"A Distributed ATMARP Service Using SCSP"
o ATM Sockets interface
2.4. Misc
---------
AST 4 port serial card using shared IRQ.
@ -517,10 +556,13 @@ GPIB and Transputer drivers.
Genius and Mustek hand scanners.
Xilinx XC6200 based reconfigurable hardware cards compatible with
the HOT1 from Virtual Computers (www.vcc.com)
Support for Dave Mills experimental Loran-C receiver.
FreeBSD currently does NOT support IBM's microchannel (MCA) bus.
3. Obtaining FreeBSD
--------------------

View File

@ -1,9 +1,10 @@
# @(#)Makefile 8.5 (Berkeley) 3/31/94
# $Id: Makefile,v 1.54 1998/09/05 08:29:05 jb Exp $
# $Id: Makefile,v 1.55 1998/09/15 10:25:04 gibbs Exp $
# XXX MISSING: icheck ncheck
SUBDIR= badsect \
SUBDIR= atm \
badsect \
camcontrol \
ccdconfig \
clri \

View File

@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
# $Id: LINT,v 1.463 1998/09/14 19:56:38 sos Exp $
# $Id: LINT,v 1.464 1998/09/15 10:01:13 gibbs Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@ -440,6 +440,36 @@ options IPFILTER_LOG #ipfilter logging
#options IPFILTER_LKM #kernel support for ip_fil.o LKM
options TCPDEBUG
#
# ATM (HARP version) options
#
# ATM_CORE includes the base ATM functionality code. This must be included
# for ATM support.
#
# ATM_IP includes support for running IP over ATM.
#
# At least one (and usually only one) of the following signalling managers
# must be included (note that all signalling managers include PVC support):
# ATM_SIGPVC includes support for the PVC-only signalling manager `sigpvc'.
# ATM_SPANS includes support for the `spans' signalling manager, which runs
# the FORE Systems's proprietary SPANS signalling protocol.
# ATM_UNI includes support for the `uni30' and `uni31' signalling managers,
# which run the ATM Forum UNI 3.x signalling protocols.
#
# The `hea' driver provides support for the Efficient Networks, Inc.
# ENI-155p ATM PCI Adapter.
#
# The `hfa' driver provides support for the FORE Systems, Inc.
# PCA-200E ATM PCI Adapter.
#
options ATM_CORE #core ATM protocol family
options ATM_IP #IP over ATM support
options ATM_SIGPVC #SIGPVC signalling manager
options ATM_SPANS #SPANS signalling manager
options ATM_UNI #UNI signalling manager
device hea0 #Efficient ENI-155p ATM PCI
device hfa0 #FORE PCA-200E ATM PCI
#####################################################################
# FILESYSTEM OPTIONS

View File

@ -99,6 +99,28 @@ dev/isp/isp.c optional isp device-driver
#dev/dpt/dpt_control.c optional dpt device-driver
dev/dpt/dpt_scsi.c optional dpt device-driver
dev/en/midway.c optional en device-driver
dev/hea/eni.c optional hea device-driver
dev/hea/eni_buffer.c optional hea device-driver
dev/hea/eni_globals.c optional hea device-driver
dev/hea/eni_if.c optional hea device-driver
dev/hea/eni_init.c optional hea device-driver
dev/hea/eni_intr.c optional hea device-driver
dev/hea/eni_receive.c optional hea device-driver
dev/hea/eni_transmit.c optional hea device-driver
dev/hea/eni_vcm.c optional hea device-driver
dev/hfa/fore_buffer.c optional hfa device-driver
dev/hfa/fore_command.c optional hfa device-driver
dev/hfa/fore_globals.c optional hfa device-driver
dev/hfa/fore_if.c optional hfa device-driver
dev/hfa/fore_init.c optional hfa device-driver
dev/hfa/fore_intr.c optional hfa device-driver
dev/hfa/fore_load.c optional hfa device-driver
dev/hfa/fore_output.c optional hfa device-driver
dev/hfa/fore_receive.c optional hfa device-driver
dev/hfa/fore_stats.c optional hfa device-driver
dev/hfa/fore_timer.c optional hfa device-driver
dev/hfa/fore_transmit.c optional hfa device-driver
dev/hfa/fore_vcm.c optional hfa device-driver
dev/pdq/pdq.c optional fea device-driver
dev/pdq/pdq_ifsubr.c optional fea device-driver
dev/pdq/pdq.c optional fpa device-driver
@ -327,6 +349,85 @@ netatalk/at_rmx.c optional netatalkdebug
netatalk/ddp_input.c optional netatalk
netatalk/ddp_output.c optional netatalk
netatalk/ddp_usrreq.c optional netatalk
netatm/atm_aal5.c optional atm_core
netatm/atm_cm.c optional atm_core
netatm/atm_device.c optional atm_core
netatm/atm_if.c optional atm_core
netatm/atm_proto.c optional atm_core
netatm/atm_signal.c optional atm_core
netatm/atm_socket.c optional atm_core
netatm/atm_subr.c optional atm_core
netatm/atm_usrreq.c optional atm_core
netatm/ipatm/ipatm_event.c optional atm_ip atm_core
netatm/ipatm/ipatm_if.c optional atm_ip atm_core
netatm/ipatm/ipatm_input.c optional atm_ip atm_core
netatm/ipatm/ipatm_load.c optional atm_ip atm_core
netatm/ipatm/ipatm_output.c optional atm_ip atm_core
netatm/ipatm/ipatm_usrreq.c optional atm_ip atm_core
netatm/ipatm/ipatm_vcm.c optional atm_ip atm_core
netatm/sigpvc/sigpvc_if.c optional atm_sigpvc atm_core
netatm/sigpvc/sigpvc_subr.c optional atm_sigpvc atm_core
netatm/spans/spans_arp.c optional atm_spans atm_core
netatm/spans/spans_cls.c optional atm_spans atm_core
netatm/spans/spans_if.c optional atm_spans atm_core
netatm/spans/spans_kxdr.c optional atm_spans atm_core
netatm/spans/spans_msg.c optional atm_spans atm_core
netatm/spans/spans_print.c optional atm_spans atm_core
netatm/spans/spans_proto.c optional atm_spans atm_core
netatm/spans/spans_subr.c optional atm_spans atm_core
netatm/spans/spans_util.c optional atm_spans atm_core
spans_xdr.h optional atm_spans atm_core \
before-depend \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "rpcgen -h -C $S/netatm/spans/spans_xdr.x > spans_xdr.h" \
clean "spans_xdr.h" \
no-obj no-implicit-rule
spans_xdr.c optional atm_spans atm_core \
before-depend \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "rpcgen -c -C $S/netatm/spans/spans_xdr.x > spans_xdr.c" \
clean "spans_xdr.c" \
no-obj no-implicit-rule local
spans_xdr.o optional atm_spans atm_core \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "${NORMAL_C}" \
no-implicit-rule local
netatm/uni/q2110_sigaa.c optional atm_uni atm_core
netatm/uni/q2110_sigcpcs.c optional atm_uni atm_core
netatm/uni/q2110_subr.c optional atm_uni atm_core
netatm/uni/qsaal1_sigaa.c optional atm_uni atm_core
netatm/uni/qsaal1_sigcpcs.c optional atm_uni atm_core
netatm/uni/qsaal1_subr.c optional atm_uni atm_core
netatm/uni/sscf_uni.c optional atm_uni atm_core
netatm/uni/sscf_uni_lower.c optional atm_uni atm_core
netatm/uni/sscf_uni_upper.c optional atm_uni atm_core
netatm/uni/sscop.c optional atm_uni atm_core
netatm/uni/sscop_lower.c optional atm_uni atm_core
netatm/uni/sscop_pdu.c optional atm_uni atm_core
netatm/uni/sscop_sigaa.c optional atm_uni atm_core
netatm/uni/sscop_sigcpcs.c optional atm_uni atm_core
netatm/uni/sscop_subr.c optional atm_uni atm_core
netatm/uni/sscop_timer.c optional atm_uni atm_core
netatm/uni/sscop_upper.c optional atm_uni atm_core
netatm/uni/uni_load.c optional atm_uni atm_core
netatm/uni/uniarp.c optional atm_uni atm_core
netatm/uni/uniarp_cache.c optional atm_uni atm_core
netatm/uni/uniarp_input.c optional atm_uni atm_core
netatm/uni/uniarp_output.c optional atm_uni atm_core
netatm/uni/uniarp_timer.c optional atm_uni atm_core
netatm/uni/uniarp_vcm.c optional atm_uni atm_core
netatm/uni/uniip.c optional atm_uni atm_core
netatm/uni/unisig_decode.c optional atm_uni atm_core
netatm/uni/unisig_encode.c optional atm_uni atm_core
netatm/uni/unisig_if.c optional atm_uni atm_core
netatm/uni/unisig_mbuf.c optional atm_uni atm_core
netatm/uni/unisig_msg.c optional atm_uni atm_core
netatm/uni/unisig_print.c optional atm_uni atm_core
netatm/uni/unisig_proto.c optional atm_uni atm_core
netatm/uni/unisig_sigmgr_state.c optional atm_uni atm_core
netatm/uni/unisig_subr.c optional atm_uni atm_core
netatm/uni/unisig_util.c optional atm_uni atm_core
netatm/uni/unisig_vc_state.c optional atm_uni atm_core
#netccitt/ccitt_proto.c optional ccitt
#netccitt/hd_debug.c optional hdlc
#netccitt/hd_input.c optional hdlc

View File

@ -1,4 +1,4 @@
# $Id: options,v 1.96 1998/09/14 19:56:36 sos Exp $
# $Id: options,v 1.97 1998/09/15 09:59:15 gibbs Exp $
#
# On the handling of kernel options
#
@ -203,6 +203,13 @@ IPFILTER opt_ipfilter.h
IPFILTER_LOG opt_ipfilter.h
IPFILTER_LKM opt_ipfilter.h
# ATM (HARP version)
ATM_CORE opt_atm.h
ATM_IP opt_atm.h
ATM_SIGPVC opt_atm.h
ATM_SPANS opt_atm.h
ATM_UNI opt_atm.h
# XXX Conflict: # of devices vs network protocol (Native ATM).
# This makes "atm.h" unusable.
NATM opt_natm.h

View File

@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
# $Id: LINT,v 1.463 1998/09/14 19:56:38 sos Exp $
# $Id: LINT,v 1.464 1998/09/15 10:01:13 gibbs Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@ -440,6 +440,36 @@ options IPFILTER_LOG #ipfilter logging
#options IPFILTER_LKM #kernel support for ip_fil.o LKM
options TCPDEBUG
#
# ATM (HARP version) options
#
# ATM_CORE includes the base ATM functionality code. This must be included
# for ATM support.
#
# ATM_IP includes support for running IP over ATM.
#
# At least one (and usually only one) of the following signalling managers
# must be included (note that all signalling managers include PVC support):
# ATM_SIGPVC includes support for the PVC-only signalling manager `sigpvc'.
# ATM_SPANS includes support for the `spans' signalling manager, which runs
# the FORE Systems's proprietary SPANS signalling protocol.
# ATM_UNI includes support for the `uni30' and `uni31' signalling managers,
# which run the ATM Forum UNI 3.x signalling protocols.
#
# The `hea' driver provides support for the Efficient Networks, Inc.
# ENI-155p ATM PCI Adapter.
#
# The `hfa' driver provides support for the FORE Systems, Inc.
# PCA-200E ATM PCI Adapter.
#
options ATM_CORE #core ATM protocol family
options ATM_IP #IP over ATM support
options ATM_SIGPVC #SIGPVC signalling manager
options ATM_SPANS #SPANS signalling manager
options ATM_UNI #UNI signalling manager
device hea0 #Efficient ENI-155p ATM PCI
device hfa0 #FORE PCA-200E ATM PCI
#####################################################################
# FILESYSTEM OPTIONS

View File

@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
# $Id: LINT,v 1.463 1998/09/14 19:56:38 sos Exp $
# $Id: LINT,v 1.464 1998/09/15 10:01:13 gibbs Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@ -440,6 +440,36 @@ options IPFILTER_LOG #ipfilter logging
#options IPFILTER_LKM #kernel support for ip_fil.o LKM
options TCPDEBUG
#
# ATM (HARP version) options
#
# ATM_CORE includes the base ATM functionality code. This must be included
# for ATM support.
#
# ATM_IP includes support for running IP over ATM.
#
# At least one (and usually only one) of the following signalling managers
# must be included (note that all signalling managers include PVC support):
# ATM_SIGPVC includes support for the PVC-only signalling manager `sigpvc'.
# ATM_SPANS includes support for the `spans' signalling manager, which runs
# the FORE Systems's proprietary SPANS signalling protocol.
# ATM_UNI includes support for the `uni30' and `uni31' signalling managers,
# which run the ATM Forum UNI 3.x signalling protocols.
#
# The `hea' driver provides support for the Efficient Networks, Inc.
# ENI-155p ATM PCI Adapter.
#
# The `hfa' driver provides support for the FORE Systems, Inc.
# PCA-200E ATM PCI Adapter.
#
options ATM_CORE #core ATM protocol family
options ATM_IP #IP over ATM support
options ATM_SIGPVC #SIGPVC signalling manager
options ATM_SPANS #SPANS signalling manager
options ATM_UNI #UNI signalling manager
device hea0 #Efficient ENI-155p ATM PCI
device hfa0 #FORE PCA-200E ATM PCI
#####################################################################
# FILESYSTEM OPTIONS

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mount.h 8.21 (Berkeley) 5/20/95
* $Id: mount.h,v 1.66 1998/09/05 15:17:34 bde Exp $
* $Id: mount.h,v 1.67 1998/09/07 13:17:05 bde Exp $
*/
#ifndef _SYS_MOUNT_H_
@ -366,7 +366,7 @@ struct vfsops {
#ifdef KERNEL
#include <net/radix.h>
#define AF_MAX 30 /* XXX */
#define AF_MAX 31 /* XXX */
/*
* Network address lookup element

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)socket.h 8.4 (Berkeley) 2/21/94
* $Id: socket.h,v 1.24 1998/02/01 22:44:16 alex Exp $
* $Id: socket.h,v 1.25 1998/09/12 21:14:25 wollman Exp $
*/
#ifndef _SYS_SOCKET_H_
@ -127,8 +127,9 @@ struct linger {
#define pseudo_AF_KEY 27 /* Internal key-management function */
#define AF_INET6 28 /* IPv6 */
#define AF_NATM 29 /* native ATM access */
#define AF_ATM 30 /* ATM */
#define AF_MAX 30
#define AF_MAX 31
/*
* Structure used by kernel to store most
@ -185,6 +186,7 @@ struct sockproto {
#define PF_KEY pseudo_AF_KEY
#define PF_INET6 AF_INET6
#define PF_NATM AF_NATM
#define PF_ATM AF_ATM
#define PF_MAX AF_MAX

View File

@ -1,5 +1,5 @@
# From: @(#)Makefile 5.20 (Berkeley) 6/12/93
# $Id: Makefile,v 1.128 1998/09/12 06:58:18 rnordier Exp $
# $Id: Makefile,v 1.129 1998/09/15 10:29:18 gibbs Exp $
# XXX MISSING: mkproto
SUBDIR= ac \
@ -7,6 +7,7 @@ SUBDIR= ac \
adduser \
amd \
arp \
atm \
bootparamd \
cdcontrol \
chkgrp \