One document matched: draft-ietf-ipatm-classic2-00.txt



Network Working Group                                       Mark Laubach
INTERNET DRAFT                                               Com21, Inc.
Expires 29 February 1996                                  31 August 1995
Obsoletes: 1577, 1626
<draft-ietf-ipatm-classic2-00.txt>




            Classical IP and ARP over ATM Update (Part Deux)


Status of this Memo

   This memo is an internet draft. Internet Drafts are working documents
   of the Internet Engineering Task Force (IETF), its Areas, and its
   Working Groups. Note that other groups may also distribute working
   documents as Internet Drafts.

   Internet Drafts are draft documents valid for a maximum of six
   months.  Internet Drafts may be updated, replaced, or obsoleted by
   other documents at any time. It is not appropriate to use Internet
   Drafts as reference material or to cite them other than as a "working
   draft" or "work in progress".  Please check the lid-abstracts.txt
   listing contained in the internet-drafts shadow directories on
   nic.ddn.mil, nnsc.nsf.net, nic.nordu.net, ftp.nisc.src.com, or
   munnari.oz.au to learn the current status of any Internet Draft.

Update Information

   This draft represents an update to RFC-1577 and RFC-1626. Changes to
   RFC-1577 are bracketed in the text by "[changebar on]" and
   "[changebar off]".

   The following changes/updates are incorporated into this document as
   per the consensus at the Danvers IETF meeting (see Danvers minutes):

   o   Single ATMARP server address to ATMARP and NHRP server lists

   o   RFC1626 text replaces MTU section

   o   Client registration procedure from In_ATMARP to first
       ATMARP_Request

   o   Clarification of variable length ATMARP packet format

   o   Clarification of ARP_NAK packet format




Laubach                                                         [Page 1]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   o   Clarification of In_ATMARP packet format for null IPv4 addresses

   o   Expanded issues list

   o   Multiple ATMARP server synchronization protocol

   The following item from the Danvers meeting will incorporated into
   subsequent I-D's:

   o   Classical RFC1577++ MIB definition

   Additionally, I've added some requirements for unsupported operation
   detection and notification in ATMARP servers.  Looking at the future,
   this will be necessary as MARS and other "arp level" services are
   deployed and made co-resident with ATMARP servers.

   Once we resolve a few issues, the following may be moved into this
   document:

   o   RFC1483 LLC/SNAP Encapsulation in the main body

   o   Multicast LLC/SNAP Encapsulation in the main body

   o   The other RFC1483 encapsulations as informational in an appendix.

   The "Update (Part Deux)" will be removed from the title at a later
   time, prior to any working group action for this memo.

   I am trying to locate easily obtainable published references for the
   Xerox PARC epidemic database work.  Some folks there think they can
   find something to help out.

1.  ABSTRACT

   This memo defines an initial application of classical IP and ARP in
   an Asynchronous Transfer Mode (ATM) network environment configured as
   a Logical IP Subnetwork (LIS) as described in Section 5.  This memo
   does not preclude the subsequent development of ATM technology into
   areas other than a LIS; specifically, as single ATM networks grow to
   replace many Ethernet local LAN segments and as these networks become
   globally connected, the application of IP and ARP will be treated
   differently.  This memo considers only the application of ATM as a
   direct replacement for the "wires" and local LAN segments connecting
   IP end-stations ("members") and routers operating in the "classical"
   LAN-based paradigm. Issues raised by MAC level bridging and LAN emu-
   lation are beyond the scope of this paper.

   This memo introduces general ATM technology and nomenclature.



Laubach                                                         [Page 2]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   Readers are encouraged to review the ATM Forum and ITU-TS (formerly
   CCITT) references for more detailed information about ATM implementa-
   tion agreements and standards.


2.  ACKNOWLEDGMENT

   The author would like to thank the efforts of the IP over ATM Working
   Group of the IETF. Without their substantial, and sometimes con-
   tentious support, of the Classical IP over ATM model, this updated
   memo would not have been possible. Section 7, on Default MTU, has
   been incorporated directly from Ran Atkinson's RFC-1626, with his
   permission. Special thanks to Berry Kercheval, Bryan Lyles, and
   Christoph Schuba from Xerox PARC for their help in refining the
   server synchronization protocol an infecting me with the epidemic
   database algorithms. Thanks for Andy Malis for an early review and
   comments for rolc related issues.



3.  CONVENTIONS

   The following language conventions are used in the items of specifi-
   cation in this document:

   o   MUST, SHALL, or MANDATORY -- the item is an absolute requirement
       of the specification.

   o   SHOULD or RECOMMEND -- this item should generally be followed for
       all but exceptional circumstances.

   o   MAY or OPTIONAL -- the item is truly optional and may be followed
       or ignored according to the needs of the implementor.


4.  INTRODUCTION

   The goal of this specification is to allow compatible and interopera-
   ble implementations for transmitting IP datagrams and ATM Address
   Resolution Protocol (ATMARP) requests and replies over ATM Adaptation
   Layer 5 (AAL5)[2,6].

   [changebar on]

   This memo specifies the stable foundation baseline operational model
   which will always be available in IP and ARP over ATM implementa-
   tions. Subsequent memos will build upon and refine this model, how-
   ever, in the absence or failure of those extensions, operations will



Laubach                                                         [Page 3]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   default to the specifications contained in this memo. Consequently,
   this memo will not reference these other extensions.

   [changebar off]

   This memo defines only the operation of IP and address resolution
   over ATM, and is not meant to describe the operation of ATM networks.
   Any reference to virtual connections, permanent virtual connections,
   or switched virtual connections applies only to virtual channel con-
   nections used to support IP and address resolution over ATM, and thus
   are assumed to be using AAL5.  This memo places no restrictions or
   requirements on virtual connections used for other purposes.

   Initial deployment of ATM provides a LAN segment replacement for:

   1)  Local area networks (e.g., Ethernets, Token Rings and FDDI).

   2)  Local-area backbones between existing (non-ATM) LANs.

   3)  Dedicated circuits or frame relay PVCs between IP routers.

   Note: In 1), local IP routers with one or more ATM interfaces will be
   able to connect islands of ATM networks.  In 3), public or private
   ATM Wide Area networks will be used to connect IP routers, which in
   turn may or may not connect to local ATM networks.  ATM WANs and LANs
   may be interconnected.

   [changebar on]

   Private ATM networks (local or wide area) will use the private ATM
   address structure specified in the ATM Forum UNI 3.1 specification
   [9]. This structure is modeled after the format of an OSI Network
   Service Access Point Address. A private ATM address uniquely identi-
   fies an ATM endpoint.  Public networks will use either the address
   structure specified in ITU-TS recommendation E.164 or the private
   network ATM address structure. An E.164 address uniquely identifies
   an interface to a public network.

   [changebar off]

   The characteristics and features of ATM networks are different than
   those found in LANs:

   [changebar on]

   o   ATM provides a Virtual Connection (VC) switched environment. VC
       setup may be done on either a Permanent Virtual Connection (PVC)
       or dynamic Switched Virtual Connection (SVC) basis. SVC call



Laubach                                                         [Page 4]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       management signalling is performed via implementations of the UNI
       3.1 protocol [7,9].

   [changebar off]

   o   Data to be passed by a VC is segmented into 53 octet quantities
       called cells (5 octets of ATM header and 48 octets of data).

   o   The function of mapping user Protocol Data Units (PDUs) into the
       information field of the ATM cell and vice versa is performed in
       the ATM Adaptation Layer (AAL).  When a VC is created a specific
       AAL type is associated with the VC.  There are four different AAL
       types, which are referred to individually as "AAL1", "AAL2",
       "AAL3/4", and "AAL5".  (Note: this memo concerns itself with the
       mapping of IP and ATMARP over AAL5 only.  The other AAL types are
       mentioned for introductory purposes only.)  The AAL type is known
       by the VC end points via the call setup mechanism and is not car-
       ried in the ATM cell header.  For PVCs the AAL type is adminis-
       tratively configured at the end points when the Connection (cir-
       cuit) is set up.  For SVCs, the AAL type is communicated along
       the VC path via UNI 3.1 as part of call setup establishment and
       the end points use the signaled information for configuration.
       ATM switches generally do not care about the AAL type of VCs.
       The AAL5 format specifies a packet format with a maximum size of
       (64K - 1) octets of user data. Cells for an AAL5 PDU are trans-
       mitted first to last, the last cell indicating the end of the
       PDU.  ATM standards guarantee that on a given VC, cell ordering
       is preserved end-to-end.  NOTE: AAL5 provides a non-assured data
       transfer service - it is up to higher-level protocols to provide
       retransmission.

   o   ATM Forum signaling defines point-to-point and point-to-
       multipoint Connection setup [9].  Multipoint-to-multipoint VCs
       are not yet specified by ITU-TS or ATM Forum.

   o   An ATM Forum ATM endpoint address is either encoded as an NSAP
       Address (NSAPA) or is an E.164 Public-UNI address [9].  In some
       cases, both an ATM endpoint address and an E.164 Public UNI
       address are needed by an ATMARP client to reach another host or
       router.  Since the use of ATM endpoint addresses and E.164 public
       UNI addresses by ATMARP are analogous to the use of Ethernet
       addresses, the notion of "hardware address" is extended to encom-
       pass ATM addresses in the context of ATMARP, even though ATM
       addresses need not have hardware significance.  ATM Forum NSAPAs
       use the same basic format as U.S. GOSIP NSAPAs [11].  Note: ATM
       Forum addresses should not be construed as being U.S. GOSIP
       NSAPAs.  They are not, the administration is different, which
       fields get filled out are different, etc.



Laubach                                                         [Page 5]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   This memo describes the initial deployment of ATM within "classical"
   IP networks as a direct replacement for local area networks (Ether-
   nets) and for IP links which interconnect routers, either within or
   between administrative domains. The "classical" model here refers to
   the treatment of the ATM host adapter as a networking interface to
   the IP protocol stack operating in a LAN-based paradigm.

   Characteristics of the classical model are:

   [changebar on]

   o   The same maximum transmission unit (MTU) size is the default for
       all VCs in a LIS [2]. However, on a VC-by-VC point-to-point
       basis, the MTU size may be negotiated during connection setup
       using Path MTU Discovery to better suit the needs of the cooper-
       ating pair of IP members or the attributes of the communications
       path. (Refer to Section 7.3)
   [changebar off]

   o   Default LLC/SNAP encapsulation of IP packets.

   o   End-to-end IP routing architecture stays the same.

   o   IP addresses are resolved to ATM addresses by use of an ATMARP
       service within the LIS - ATMARPs stay within the LIS.  From a
       client's perspective, the ATMARP architecture stays faithful to
       the basic ARP model presented in [3].

   o   One IP subnet is used for many hosts and routers. Each VC
       directly connects two IP members within the same LIS.

   Future memos will describe the operation of IP over ATM when ATM net-
   works become globally deployed and interconnected.

   The deployment of ATM into the Internet community is just beginning
   and will take many years to complete. During the early part of this
   period, we expect deployment to follow traditional IP subnet bound-
   aries for the following reasons:

   o   Administrators and managers of IP subnetworks will tend to ini-
       tially follow the same models as they currently have deployed.
       The mindset of the community will change slowly over time as ATM
       increases its coverage and builds its credibility.

   o   Policy administration practices rely on the security, access,
       routing, and filtering capability of IP Internet gateways: i.e.
       firewalls. ATM will not be allowed to "back-door" around these
       mechanisms until ATM provides better management capability than



Laubach                                                         [Page 6]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       the existing services and practices.

   o   Standards for global IP over ATM will take some time to complete
       and deploy.

   This memo details the treatment of the classical model of IP and
   ATMARP over ATM. This memo does not preclude the subsequent treatment
   of ATM networks within the IP framework as ATM becomes globally
   deployed and interconnected; this will be the subject of future docu-
   ments. This memo does not address issues related to transparent data
   link layer interoperability.


5.  IP SUBNETWORK CONFIGURATION

   [changebar on]

5.1 Background

   In the LIS scenario, each separate administrative entity configures
   its hosts and routers within a LIS. Each LIS operates and communi-
   cates independently of other LISs on the same ATM network.

   In the classical model, hosts communicate directly via ATM to other
   hosts within the same LIS using the ATMARP service as the mechanism
   for resolving target IP addresses to target ATM endpoint addresses.
   The ATMARP service has LIS scope only and serves all hosts in the
   LIS. Communication to hosts located outside of the local LIS is pro-
   vided via an IP router. This router is an ATM endpoint attached to
   the ATM network that is configured as a member of one or more LISs.
   This configuration MAY result in a number of disjoint LISs operating
   over the same ATM network. Using this model hosts of differing IP
   subnets MUST communicate via an intermediate IP router even though it
   may be possible to open a direct VC between the two IP members over
   the ATM network.

   Using a classical plus next hop address resolution model, the ATMARP
   service is supplemented with a Next Hop Resolution Protocol (NHRP)
   service [18]. The NHRP service provides an IP to ATM endpoint address
   resolution service for target hosts located outside the LIS. With
   NHRP a classical host, after not receiving a satisfactory reply from
   the ATMARP service, may then query the NHRP service for resolution.
   If the target IP address is known to the NHRP service an ATM endpoint
   address is returned for the query. The host may then open an ATM con-
   nection to that host. This configuration allows IP members to "cut
   through" the classical LIS boundaries on a case by case basis in
   favor of more direct ATM connections between cooperating IP members.




Laubach                                                         [Page 7]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   By default, the ATMARP service and the classical LIS routing model
   MUST be available to any IP member in the LIS.

5.2 LIS Configuration Requirements

   [changebar off]

   The requirements for IP members  (hosts, routers) operating in an ATM
   LIS configuration are:

   o   All members of the LIS have the same IP network/subnet number and
       address mask [8].

   o   All members within a LIS are directly connected to the ATM net-
       work.

   o   All members of a LIS MUST have a mechanism for resolving IP
       addresses to ATM addresses via ATMARP (based on [3]) and vice
       versa via InATMARP (based on [12]) when using SVCs.  Refer to
       Section 8 "Address Resolution" in this memo.

   o   All members of a LIS MUST have a mechanism for resolving VCs to
       IP addresses via InATMARP (based on [12]) when using PVCs.  Refer
       to Section 8 "Address Resolution" in this memo.

   o   All members within a LIS MUST be able to communicate via ATM with
       all other members in the same LIS; i.e., the Virtual Connection
       topology underlying the intercommunication among the members is
       fully meshed.

       [changebar on]

   o   Members of a LIS MAY but are NOT REQUIRED to have a mechanism for
       resolving IP addresses to ATM addresses via NHRP (based on [18]).

   o   When NHRP is not available to a LIS member, all IP stations
       located outside of the LIS are accessed via a router.

   [changebar off]

   The following list identifies the set of ATM specific parameters that
   MUST be implemented in each IP station connected to the ATM network:

   o   ATM Hardware Address (atm$ha). The ATM address of the individual
       IP station.

   [changebar on]




Laubach                                                         [Page 8]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   o   ATMARP Request Address list (atm$arp-req-list): atm$arp-req-list
       is a list containing one or more ATM addresses of individual
       ATMARP servers located within the LIS. In an SVC environment,
       ATMARP servers are used to resolve target IP addresses to target
       ATM address via an ATMARP request and reply protocol. ATMARP
       servers MUST have authoritative responsibility for resolving
       ATMARP requests of all IP members using SVCs located within the
       LIS. Implementations MUST support a minimum list size of at least
       three entries which contain either null or non-null addresses.

   o   NHS Request Address list (atm$nhs-req-list): atm$nhs-req-list is
       a list containing one or more ATM addresses of individual Next
       Hop Resolution Protocol (NHRP) servers also called Next Hop
       Servers (NHS) [18]. In an SVC environment, NHRP servers are used
       to resolve target IP addresses to target ATM address via an NHRP
       request and reply protocol. The NHS is typically used to resolve
       IP addresses to ATM address for IP addresses located outside the
       LIS. Implementations MUST support a minimum list size of at least
       three entries which contain either null or non-null entries.
       Implementations MUST be able to identify (type) the list entry as
       a unicast or multicast ATM address.

   Note: the minimum default lists sizes for atm$arp-req-list and
   atm$nhs-req-list were selected to enforce implementation interoper-
   ability and testing for these minimum sizes and to allow network
   designers to have a priori knowledge of the minimum capabilities of
   implementations conforming to this specification.

   A LIS MUST have a single ATMARP service (single server or multiple
   synchronized servers) configured and available to all members of the
   LIS who use SVCs.

   If the ATMARP service for the LIS is being provided by a synchronized
   multiple-server ATMARP service implementation (see Section 8.10) then
   each client MUST be configured with at least one non-null entry in
   atm$arp-req-list specifying one of the synchronized servers otherwise
   there are no requirements on the number or order of the entries in
   atm$arp-req-list and there are no requirements that all clients be
   configured identically.

   If the ATMARP service is being provided by a single ATMARP server,
   then all clients within the LIS MUST be configured identically to
   have only one non-null entry in atm$arp-req-list configured with the
   same address of the single ATMARP server.

   If the IP member is operating with PVCs only, then the atm$arp-req-
   list and the atm$nhs-req-list MUST be configured with all null
   entries and the client MUST not make queries to either address



Laubach                                                         [Page 9]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   resolution service.

   The classical IP member MAY allow the optional use of the supplemen-
   tal NHRP address resolution service on a client-by-client basis if
   the local administration has provided the service; i.e., it is not
   necessary for all IP members in the LIS to be configured to use NHRP
   as the default IP router path with be always available. The guide-
   lines for coordinating ATMARP and NHRP service queries are detailed
   in Section 8.5. It is beyond the scope of this memo to detail how the
   NHS is configured and administrated.

   Within the restrictions mentioned above and in Section 8, local
   administration MUST decide which server address(es) are appropriate
   for atm$arp-req-list and atm$nhs-req-list.

   Manual or automatic configuration of the addresses and address lists
   presented in this section is implementation dependent and beyond the
   scope of this document; i.e. this memo does not require any specific
   configuration method. This memo does require that these addresses
   MUST be configured completely on the client, as appropriate for the
   LIS, prior to use by any service or operation detailed in this memo.

5.3 LIS Router Additional Configuration

   [changebar off]

   It is RECOMMENDED that routers providing LIS functionality over the
   ATM network also support the ability to interconnect multiple LISs.
   Routers that wish to provide interconnection of differing LISs MUST
   be able to support multiple sets of these parameters (one set for
   each connected LIS) and be able to associate each set of parameters
   to a specific IP network/ subnet number. In addition, it is RECOM-
   MENDED that a router be able to provide this multiple LIS support
   with a single physical ATM interface that may have one or more indi-
   vidual ATM endpoint addresses.  Note: this does not necessarily mean
   different End System Identifiers (ESIs) when NSAPAs are used.  The
   last octet of an NSAPA is the NSAPA Selector (SEL) field which can be
   used to differentiate up to 256 different LISs for the same ESI.
   (Refer to Section 5.1.3.1, "Private Networks" in [9].)


6.  IP PACKET FORMAT

   Implementations MUST support IEEE 802.2 LLC/SNAP encapsulation as
   described in [2].  LLC/SNAP encapsulation is the default packet for-
   mat for IP datagrams.

   This memo recognizes that other encapsulation methods may be used



Laubach                                                        [Page 10]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   however, in the absence of other knowledge or agreement, LLC/SNAP
   encapsulation is the default.

   [changebar on]

   This memo recognizes that end-to-end signaling within ATM will allow
   negotiation of encapsulation method on a per-VC basis.

   [changebar off]

7.  Default Value for IP MTU over ATM AAL5

   Protocols in wide use throughout the Internet, such as the Network
   File System (NFS), currently use large frame sizes (e.g. 8 KB).
   Empirical evidence with various applications over the Transmission
   Control Protocol (TCP) indicates that larger Maximum Transmission
   Unit (MTU) sizes for the Internet Protocol (IP) tend to give better
   performance. Fragmentation of IP datagrams is known to be highly
   undesirable [16]. It is desirable to reduce fragmentation in the net-
   work and thereby enhance performance by having the IP Maximum Trans-
   mission Unit (MTU) for AAL5 be reasonably large.  NFS defaults to an
   8192 byte frame size. Allowing for RPC/XDR, UDP, IP, and LLC headers,
   NFS would prefer a default MTU of at least 8300 octets.  Routers can
   sometimes perform better with larger packet sizes because most of the
   performance costs in routers relate to "packets handled" rather than
   "bytes transferred". So there are a number of good reasons to have a
   reasonably large default MTU value for IP over ATM AAL5.

   RFC-1209 specifies the IP MTU over SMDS to be 9180 octets, which is
   larger than 8300 octets but still in the same range [1]. There is no
   good reason for the default MTU of IP over ATM AAL5 to be different
   from IP over SMDS, given that they will be the same magnitude. Having
   the two be the same size will be helpful in interoperability and will
   also help reduce incidence of IP fragmentation.

   Therefore, the default IP MTU for use with ATM AAL5 shall be 9180
   octets.  All implementations compliant and conformant with this spec-
   ification shall support at least the default IP MTU value for use
   over ATM AAL5.

7.1  Permanent Virtual Circuits

   Implementations which only support Permanent Virtual Circuits (PVCs)
   will (by definition) not implement any ATM signalling protocol. Such
   implementations shall use the default IP MTU value of 9180 octets
   unless both parties have agreed in advance to use some other IP MTU
   value via some mechanism not specified here.




Laubach                                                        [Page 11]

DRAFT             Classical IP and ARP over ATM Update       August 1995


7.2  Switched Virtual Circuits

   Implementations that support Switched Virtual Circuits (SVCs) MUST
   attempt to negotiate the AAL CPCS-SDU size using the ATM signalling
   protocol. The industry standard ATM signalling protocol uses two dif-
   ferent parts of the Information Element named "AAL Parameters" to
   exchange information on the MTU over the ATM circuit being setup [9].
   The Forward Maximum CPCS-SDU Size field contains the value over the
   path from the calling party to the called party. The Backwards Maxi-
   mum CPCS-SDU Size Identifier field contains the value over the path
   from the called party to the calling party. The ATM Forum specifies
   the valid values of this identifier as 1 to 65535 inclusive. Note
   that the ATM Forum's User-to-Network-Interface (UNI) signalling per-
   mits the MTU in one direction to be different from the MTU in the
   opposite direction, so the Forward Maximum CPCS-SDU Size Identifier
   might have a different value from the Backwards Maximum CPCS-SDU Size
   Identifier on the same connection.

   If the calling party wishes to use the default MTU it shall still
   include the "AAL Parameters" information element with the default
   values for the Maximum CPCS-SDU Size as part of the SETUP message of
   the ATM signalling protocol [9]. If the calling party desires to use
   a different value than the default, it shall include the "AAL Parame-
   ters" information element with the desired value for the Maximum
   CPCS-SDU Size as part of the SETUP message of the ATM Signalling Pro-
   tocol. The called party will respond using the same information ele-
   ments and identifiers in its CONNECT message response [9].

   If the called party receives a SETUP message containing the "Maximum
   CPCS-SDU Size" in the AAL Parameters information element, it shall
   handle the Forward and Backward Maximum CPCS-SDU Size Identifier as
   follows:

   a)  If it is able to accept the ATM MTU values proposed by the SETUP
       message, it shall include an AAL Parameters information element
       in its response.  The Forward and Backwards Maximum CPCS-SDU Size
       fields shall be present and their values shall be equal to the
       corresponding values in the SETUP message.

   b)  If it wishes a smaller ATM MTU size than that proposed, then it
       shall set the values of the Maximum CPCS-SDU Size in the AAL
       Parameters information elements equal to the desired value in the
       CONNECT message responding to the original SETUP message.

   c)  If the calling endpoint receives a CONNECT message that does not
       contain the AAL Parameters Information Element, but the corre-
       sponding SETUP message did contain the AAL Parameters Information
       element (including the forward and backward CPCS-SDU Size



Laubach                                                        [Page 12]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       fields), it shall clear the call with cause "AAL Parameters can-
       not be supported".

   d)  If either endpoint receives a STATUS message with cause "Informa-
       tion Element Non-existent or Not Implemented" or cause ""Access
       Information Discarded", and with a diagnostic field indicating
       the AAL Parameters Information Element identifier, it shall clear
       the call with cause "AAL Parameters cannot be supported."

   e)  If either endpoint receives CPCS-SDUs in excess of the negotiated
       MTU size, it may use IP fragmentation or may clear the call with
       cause "AAL Parameters cannot be supported".  In this case, an
       error has occurred either due to a fault in an end system or in
       the ATM network.  The error should be noted by ATM network man-
       agement for human examination and intervention.

   If the called endpoint incorrectly includes the Forward and Backward
   Maximum CPCS-SDU Size fields in the CONNECT messages (e.g. because
   the original SETUP message did not include these fields) or it sets
   these fields to an invalid value, then the calling party shall clear
   the call with cause "Invalid Information Element Contents".

7.3  Path MTU Discovery Required

   The Path MTU Discovery mechanism is Internet Standard RFC-1191 [17]
   and is an important mechanism for reducing IP fragmentation in the
   Internet. This mechanism is particularly important because new subnet
   ATM uses a default MTU sizes significantly different from older sub-
   net technologies such as Ethernet and FDDI.

   In order to ensure good performance throughout the Internet and also
   to permit IP to take full advantage of the potentially larger IP
   datagram sizes supported by ATM, all routers implementations that
   comply or conform with this specification must also implement the IP
   Path MTU Discovery mechanism as defined in RFC-1191 and clarified by
   RFC-1435 [15]. Host implementations should implement the IP Path MTU
   Discovery mechanism as defined in RFC-1191.

8.  LIS ADDRESS RESOLUTION SERVICES

8.1 ATM-based ARP and InARP Equivalent Services

   Address resolution within an ATM LIS SHALL make use of the ATM
   Address Resolution Protocol (ATMARP) (based on [3]) and the Inverse
   ATM Address Resolution Protocol (InATMARP) (based on [12]) and as
   defined in this memo.  ATMARP is the same protocol as the ARP proto-
   col presented in [3] with extensions needed to support address reso-
   lution in a unicast server ATM environment. InATMARP is the same



Laubach                                                        [Page 13]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   protocol as the original InARP protocol presented in [12] but applied
   to ATM networks. All IP stations MUST support these protocols as
   updated and extended in this memo.  Use of these protocols differs
   depending on whether PVCs or SVCs are used.

8.2 Permanent Virtual Connections

   An IP station MUST have a mechanism (e.g. manual configuration) for
   determining what PVCs it has, and in particular which PVCs are being
   used with LLC/SNAP encapsulation.  The details of the mechanism are
   beyond the scope of this memo.

   [changebar on]

   All IP members supporting PVCs are required to use the Inverse ATM
   Address Resolution Protocol (InATMARP) (refer to [12]) on those VCs
   using LLC/SNAP encapsulation. In a strict PVC environment, the
   receiver SHALL infer the relevant VC from the VC on which the InAT-
   MARP_Request or response InATMARP_REPLY was received. When the ATM
   source and/or target address is unknown, the corresponding ATM
   address length in the InATMARP packet MUST be set to zero (0) indi-
   cating a null length, and no storage be allocated in the InATMARP
   packet, otherwise the appropriate address field should be filled in
   and the corresponding length set appropriately. InATMARP packet for-
   mat details are presented later in this memo.

   Directly from [12]: "When the requesting station receives the
   In[ATM]ARP_Reply, it may complete the [ATM]ARP table entry and use
   the provided address information. Note: as with [ATM]ARP, information
   learned via In[ATM]ARP may be aged or invalidated under certain cir-
   cumstances." IP stations supporting PVCs MUST re-validate ATMARP
   table entries as part of the table aging process. See the Section
   8.5.1 "Client ATMARP Table Aging".

   [changebar off]

8.3 Switched Virtual Connections

   [changebar on]

   SVCs require support from address resolution services for resolving
   target IP addresses to target ATM endpoint addresses. All members in
   the LIS MUST use the same service. This service MUST have authorita-
   tive responsibility for resolving the ATMARP requests of all IP mem-
   bers within the LIS.

   ATMARP servers do not actively establish connections. They depend on
   the clients in the LIS to initiate connections for the ATMARP



Laubach                                                        [Page 14]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   registration procedure and for transmitting ATMARP requests. An indi-
   vidual client connects to the ATMARP server using a point-to-point
   LLC/SNAP VC. The client sends normal ATMARP request packets to the
   server. The ATMARP server examines each ATMARP_Request packet for the
   source protocol and source hardware address information of the send-
   ing client and uses this information to build its ATMARP table cache.
   This information is used to generate replies to any ATMARP requests
   it receives.

   InATMARP_Request packets MUST specify valid address information for
   ATM source number, ATM target number, and source protocol address;
   i.e., these fields MUST be non-null in InATMARP_Request packets.

   This memo defines client-server interaction by using a single server
   approach as a reference model. The single server approach is then
   expanded into a multiple-server model by the specification of a
   server-to-server peer-to-peer synchronization protocol as defined in
   Section 8.9.

   [changebar off]


8.4 ATMARP Single Server Operational Requirements

   [changebar on]

   A single ATMARP server accepts ATM calls/connections from other ATM
   end points.  After receiving any ATMARP_Request, the server will
   examine the source and target address information in the packet and
   make note of the VC on which the ATMARP_Request arrived. It will use
   this information as necessary to build and update its ATMARP table
   entries.

   For each ATMARP_Request, then:

   1.  If the source IP protocol address is the same as the target IP
       protocol address and a table entry exists for that IP address and
       if the source ATM hardware address does not match the table entry
       ATM address and there is an open VC associated with that table
       entry that is not the same as the VC associated with the
       ATMARP_Request, the server MUST return the table entry informa-
       tion in the ATMARP_Reply, and MUST raise a "duplicate IP address
       detected" condition to the server's management. The table entry
       is not updated.

   2.  Otherwise, if the source IP protocol address is the same as the
       target IP protocol address, and either there is no table entry
       for that IP address, or a table entry exists for that IP address



Laubach                                                        [Page 15]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       and there is no open VC associated with that table entry, or if
       the VC associated with that entry is the same as the VC for the
       ATMARP_Request, the server MUST either create a new entry or
       update the old entry as appropriate and returns that table entry
       information in the ATMARP Reply.

   3.  Otherwise, when the source IP protocol address does not match the
       target IP protocol address, the ATMARP server will generate the
       corresponding ATMARP_Reply if it has an entry for the target
       information in its ATMARP table. Otherwise it will generate a
       negative ATMARP reply (ATMARP_NAK).

   4.  Additionally, when the source IP protocol address does not match
       the target IP protocol address and when the server receives an
       ATMARP_Request over a VC, where the source IP and ATM address do
       not have a corresponding table entry, the ATMARP server MUST cre-
       ate a new table entry for the source information. Explanation:
       this allows old RFC1577 clients to register with this ATMARP ser-
       vice by just issuing requests to it.

   5.  Additionally, when the source IP protocol address does not match
       the target IP protocol address and where the source IP and ATM
       addresses match the association already in the ATMARP table and
       the ATM address matches that associated with the VC, the server
       MUST update the table timeout on the source ATMARP table entry
       but only if it has been more than 10 minutes since the last
       update. Explanation: if the client is sending ATMARP requests to
       the server over the same VC that it used to register its ATMARP
       entry, the server should examine the ATMARP request and note that
       the client is still "alive" by updating the timeout on the
       client's ATMARP table entry.  However, the server should not
       update the entry for every ATMARP_Request that has been received
       as this effects the rumor mongering churn in the server synchro-
       nization system presented later in this section.

   An ATMARP server MUST have knowledge of any open VCs it has and their
   association with an ATMARP table entry, and in particular, which VCs
   support LLC/SNAP encapsulation. In normal operation, active ATMARP
   clients will revalidate their entries prior to the server aging pro-
   cess taking effect.

   Server ATMARP table entries are valid for 20 minutes.  If an entry
   ages beyond 20 minutes without being updated, that entry is deleted
   from the table regardless of the state of any VCs that may be associ-
   ated with that entry.

   [changebar off]




Laubach                                                        [Page 16]

DRAFT             Classical IP and ARP over ATM Update       August 1995


8.5 ATMARP Client Operational Requirements

   [changebar on]

   The ATMARP client is responsible for contacting the ATMARP service to
   register its own ATMARP information. The client is also responsible
   for using the ATMARP service and optionally the NHRP service to gain
   and refresh entry/information about other IP members (server selec-
   tion overview is discussed in Section 8.6). As noted in Section 5.2,
   ATMARP clients MUST be configured with the ATM address(es) of the
   appropriate servers prior to operation.

   IP clients MUST register their ATM endpoint address with their ATMARP
   server using the ATM address structure appropriate for their ATM net-
   work connection: i.e., LISs implemented over ATM LANs following ATM
   Forum UNI 3.1 should register using Structure 1; LISs implemented
   over an E.164 "public" ATM network should register using Structure 2.
   A LIS implemented over a combination of ATM LANs and public ATM net-
   works may need to register using Structure 3.  Implementations based
   on this memo MUST support all three ATM address structures.  See Sec-
   tion 8.7.1 for more details regarding the ATMARP Request packet for-
   mat.

   For operation, clients MUST:

   1.  Initiate the LLC/SNAP VC connection to a server in the ATMARP
       service for transmitting and receiving ATMARP packets (server
       selection is discussed in the Section 8.5).

   2.  Immediately after opening a successful connection to the ATMARP
       service, the client MUST transmit an ATMARP_Request packet,
       requesting a target ATM address for its own IP address as the
       target IP protocol address. The client checks the ATMARP_Reply
       and if the source hardware and protocol addresses match the
       respective target hardware and protocol addresses, the client is
       registered with the ATMARP service. If the addresses do not
       match, the client MAY take action, raise alarms, etc.; however,
       these actions are beyond the scope of this memo.

   3.  Clients MUST respond to ATMARP_Request and InATMARP_Request pack-
       ets received on any VC appropriately. (Refer to Section 7, "Pro-
       tocol Operation" in RFC1293 [12].)

   4.  Generate and transmit address resolution request packets to the
       address resolution server of choice (the selection of the
       server/service is detailed in Section 8.5). Respond to address
       resolution reply packets appropriately to build/refresh its own
       client ATMARP table entries.



Laubach                                                        [Page 17]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   5.  Generate and transmit InATMARP_Request packets as needed and to
       process InATMARP_Reply packets appropriately. InATMARP_Reply
       packets should be used to build/refresh its own client ATMARP
       table entries. (Refer to Section 7, "Protocol Operation" in
       [12].)

   If the client does not maintain an open VC to the server, the client
   MUST refresh its ATMARP information with the server at least once
   every 15 minutes. This is done by repeating steps 1 and 2.

   An ATMARP client MUST have knowledge of any open VCs it has (perma-
   nent or switched), their association with an ATMARP table entry, and
   in particular, which VCs support LLC/SNAP encapsulation.

8.5.1 Client ATMARP Table Aging

   Client ATMARP table entries are valid for a maximum time of 15 min-
   utes.

   When an ATMARP table entry ages, an ATMARP client MUST invalidate the
   table entry. If there is no open VC associated with the invalidated
   entry, that entry is deleted. In the case of an invalidated entry and
   an open VC, the client MUST revalidate the entry prior to transmit-
   ting any non address resolution traffic on that VC; this requirement
   applies to both PVCs and SVCs.

   In the case of an open PVC, the client revalidates the entry by
   transmitting an InATMARP_REQUEST and updating the entry on receipt of
   an InATMARP_REPLY.

   In the case of an open SVC, the client revalidates the entry by
   querying the address resolution service.  If a valid reply is
   received (e.g., ATMARP_Reply), the entry is updated.  If the address
   resolution service cannot resolve the entry (i.e., "host not found"),
   the SVC should be closed and the associated table entry removed.  If
   the address resolution service is not available (i.e. "server fail-
   ure") and if the SVC is LLC/SNAP encapsulated, the client MUST
   attempt to revalidate the entry by transmitting an InATMARP_Request
   on that VC and updating the entry on receipt of an InATMARP_Reply. If
   the InATMARP_Request attempt fails to return an InATMARP_Reply, the
   SVC should be closed and the associated table entry removed.

   If a VC with an associated invalidated ATMARP table entry is closed,
   that table entry is removed.







Laubach                                                        [Page 18]

DRAFT             Classical IP and ARP over ATM Update       August 1995


8.5.2 Non-Normal VC Operations

   The specific details on client procedures for detecting non-normal VC
   connection establishment or closures, or failed communications on an
   established VC are beyond the scope of this memo. It is REQUIRED how-
   ever, that the client MUST remove the associated ATMARP entry for a
   VC that fails to operate properly, as defined by the client, when the
   client closes that VC, when it releases its resources for a VC, or
   prior to any attempt to reopen that VC. This behavior specifically
   REQUIRES that the client MUST refresh its ATMARP table information
   prior to any attempt to re-establish communication to an IP member
   after a non-normal communications problem has occurred on a VC previ-
   ously to that IP member.


8.6 Address Resolution Server Selection

   A client has two address resolution server lists: the ATMARP server
   list and the NHRP server list. If the client supports PVCs only, the
   lists are both empty and the client MUST not generate any address
   resolution requests other than the InATMARP requests on a PVC needed
   to validate that PVC. If the client supports SVCs, then the client
   MUST have at least one entry in the ATMARP server list atm$arp-req-
   list pointing to a server in the ATMARP service.  The specific
   requirements are presented in Section 5.2.

   For ATMARP address resolution, the client MUST only select/register
   with a server listed in atm$arp-req-list.

   For each address resolution request, the following general procedural
   guidelines MUST be followed:

   1.  The client MUST start with the ATMARP server list.

   2.  The client is looking for an ATMARP_Reply to satisfy the
       ATMARP_Request An ATMARP_Reply terminates the address resolution
       request process. A receipt of an ATMARP_NAK or an abnormal condi-
       tion (e.g., server request timeout or non-normal close) causes
       the client to try another available server in the same list.  The
       client MUST register itself with each new server as per the reg-
       istration instructions in Section 8.5 under Item 2 prior to issu-
       ing the ATMARP_Request it is trying to resolve.  The client MUST
       query all available servers in the ATMARP list before moving the
       NHRP server list.

   3.  The client is looking for an NHRP Reply to satisfy the
       NHRP_Request. A NRHP_Reply terminates the address resolution
       request process. A receipt of a NHRP_NAK or an abnormal condition



Laubach                                                        [Page 19]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       (e.g., server request timeout or non-normal close) causes the
       client to try another available server in the same list. When all
       available servers in the NHRP list have been tried, the client
       terminates server querying.

   4.  If at least one negative response was received during the lookup
       process (i.e., ATMARP_NAK or NHRP_NAK) the address resolution
       process MUST terminate with a "host not found" condition, other-
       wise it MUST terminate with a "server failure" condition.

   The client MUST only have one address resolution service VC open at
   any given time.

   The details of selecting a server within a list, the marking a server
   as available or unavailable, and the processing of "host not found"
   or "server failure" conditions is implementation dependent and beyond
   the scope of this memo.


8.7  ATMARP Server Synchronization

8.7.1  Goals

   This section details the extensions to the single ATMARP server model
   to support a server-to-server neighbor synchronization protocol and
   operations necessary for a reliable multiple-server ATMARP address
   resolution service. The multiple-server protocol is based on the fol-
   lowing design goals:

   o   The service MUST support arbitrary server connection topologies.

   o   Old RFC1577 clients MUST be able to use the multi-server service
       with the understanding that they are limited to connect to only
       one server in the service.

   o   Clients, as defined in this memo, MUST be able to use any server
       in the address resolution service for address registration and
       ATMARP_Request query resolution.

   o   The model MUST reliably support Class C size IP subnetworks and
       allow future extensions to support arbitrarily large IP subnet-
       works.

   o   ATMARP_Requests MUST be allowed to be arbitrarily distributed to
       any server in the service and not sent directly or indirectly to
       a single server. This allows the size of the LIS to scale inde-
       pendently from single server performance.




Laubach                                                        [Page 20]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   o   The model MUST minimize the impact of server-to-server synchro-
       nization messages to a reasonable percentage of the total network
       load.

   o   The design of the synchronization protocol MUST be based on
       existing techniques.

   To meet the above goals, the server synchronization protocol is based
   on the Xerox PARC epidemic database replication algorithms as
   described in [14].  In particular, the protocol and operational model
   makes use of both the "anti-entropy" and "rumor mongering" replica-
   tion techniques. Rumor mongering is based on the Counter and Feedback
   mechanism.

   The general mechanism is as follows: an arbitrary number of servers
   are configured to provide the ATMARP service for a LIS.  Servers are
   configured to know about one or more other servers and they maintain
   open VCs with these servers.  Clients are configured to know about
   one or more servers.  When a client registers or updates with a
   server, that server becomes "infective", declares the information as
   "hot", and randomly spreads the rumor to other "susceptible" neighbor
   servers that it knows about using an epidemic rumor mongering tech-
   nique.  The infective server keeps a counter of the number of times a
   susceptible neighbor has already heard the rumor.  If the infective
   server has exhausted its tries to its neighbors or more than a
   threshold number of neighbors have already heard the rumor, it
   declares the rumor has "not hot" and ceases to infect its neighbors.
   When a server receives a rumor that either creates or updates an
   entry in its ATMARP table, it will mark that entry as "hot", become
   infective, and begin rumor mongering to its other neighbors.

   VC state between cooperating servers is used to determine when to
   initiate the anti-entropy epidemic method.  When a server opens a VC
   to a neighbor server or when a server receives a VC connection from a
   neighbor, it enters the anti-entropy state.  The server then trans-
   mits to the neighbor a rumor for every entry in its ATMARP table.
   Any information received from the neighbor server or other server
   during this process which creates or updates an entry, is marked as
   hot and queued.  All hot rumors are processed only after the anti-
   entropy process is complete, that is, a server rumors each entry its
   ATMARP table, concludes, and then goes into normal rumor mongering
   for any hot rumors it has received after the anti-entropy process was
   started.

   Rumors carry unique origination identification based on the originat-
   ing server's ATM address and an origination timestamp.  Servers will
   only accept rumors from servers it has been configured to neighbor
   with.  Each rumor message is serialized and receiving servers must



Laubach                                                        [Page 21]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   respond with an acknowledgment and a flag stating whether the rumor
   has already been heard or not.  It is assumed that an ATMARP client
   MUST make requests to only one ATMARP server at any time.  Client
   mobility is detected based on the originating server's ID information
   which accompanies a rumor.

   Epidemic techniques are statistical in nature and produce near com-
   plete rumor propagation coverage when the value of the threshold
   counter is greater then 1 (one).  For value greater than 1, propor-
   tional redundant traffic is induced into the network.  Xerox PARC
   studies indicate that a value of 2 or 3 is sufficient to induce near
   complete coverage [14].

8.7.2  Baseline Operational Requirements

   Any ATMARP server implemented to the specifications detailed in this
   memo MUST support synchronized server operation regardless of how
   deployed in a LIS; i.e. a single ATMARP server for a LIS MUST still
   be capable of supporting synchronized server operation even if that
   capability goes unused.

   For the purposes of this memo, an ATMARP server "neighbor" is another
   ATMARP server which has been configured to participate in the ATMARP
   server synchronization operation.  It it beyond the scope of this
   memo to specify how an ATMARP server is configured with the list of
   its neighbors.

   In addition to the ATMARP server operation rules presented in Section
   8.3, the additional basic operation rules for synchronized server
   operation are as follows:

   1.  An ATMARP server MUST maintain a list of the ATM addresses of its
       neighbor ATMARP servers.  Implementations MUST support a minimum
       list size of at least five entries which contain either null or
       non-null addresses.

   2.  An ATMARP server MUST have knowledge of any LLC/SNAP VCs it has
       to it's known ATMARP server neighbors, and the state of those
       VCs.

   3.  An ATMARP server MUST recognize on which VCs it receives an
       ATMARP_Request or ATMARP_Sync message.

   4.  An ATMARP server MUST discard any ATMARP_Sync messages that are
       received on an LLC/SNAP VC which is not associated with one of
       its neighbors.

   5.  If an ATMARP server transmits an ATMARP_Sync rumor message on a



Laubach                                                        [Page 22]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       VC to a neighbor, then that VC MUST only be used for ATMARP
       server-to-server messages.  Likewise, if an ATMARP server
       receives an ATMARP_Sync message on a VC from a neighbor, it MUST
       assume that that VC is to be used only for ATMARP server-to-
       server neighbor messages.

   6.  An ATMARP server MUST be able to detect if it has two or more
       ATMARP_Sync message VCs (as described in the preceding guideline)
       open between itself and one of its neighbors.

   7.  Each ATMARP table entry MUST also record the "origin address" ATM
       Address and the "origin timestamp".

   8.  If the receipt of an ATMARP_Request (as detailed in Section 8.3)
       causes a table entry to be created,  that entry is marked as
       "hot", the origin address is set to the ATMARP server's ATM
       address, the origin timestamp and the entry local timestamp are
       each initialized.

   9.  If the receipt of an ATMARP_Request (as detailed in Section 8.3)
       causes a table entry to be updated (and the time since the last
       update or creation is greater than 10 minutes), that entry is
       marked as "hot", the origin address is set to the ATMARP server's
       ATM address, the origin timestamp and the entry local timestamp
       are each updated (refreshed).

   10. An ATMARP server MUST have a mechanism for generating unique
       ATMARP_Sync message serial numbers.

   11. An ATMARP server MUST have a mechanism for generating a 32-bit
       unsigned integer "timestamp" based upon a local mechanism.  The
       resolution of the timestamp must be sufficient to uniquely mark
       ATMARP table entries that are created on that server via an
       ATMARP_Request.  This timestamp function is referred to as the
       "origin timestamp" later in this section.

   12. If all previously open ATMARP_Sync messages VCs between an ATMARP
       server and a neighbor have all been closed, for any reason, that
       neighbor is marked as "down".  The details on restarting connec-
       tions to neighbors is presented later in this section.

8.7.3 Server Startup Operation

   The following guidelines define server startup operation:

   1.  When an ATMARP server begins initial operation, it examines its
       ATMARP neighbor list and opens an LLC/SNAP VC to each listed
       neighbor.  It is implementation dependent and beyond the scope of



Laubach                                                        [Page 23]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       this memo to detail whether this is a serial or parallel opera-
       tion for the ATMARP server.

   2.  After successfully opening a VC to a neighbor, the server initi-
       ates an "anti-entropy" update.  That is, for each "non hot"
       ATMARP table entry, the server transmits a uniquely serialized
       ATMARP_Sync ATMARP_Rumor message containing that table entry to
       the neighbor and then waits for an ATMARP_Sync acknowledgment for
       that serial number.  If an ATMARP_Sync ACK_NotHeard or ACK_Heard
       is received, any feedback is ignored and the sending server moves
       to the next entry.  If an ATMARP_Sync acknowledgement is not
       received within 5 seconds, the sending server marks the neighbor
       as "down", and closes any VC to that neighbor that has been asso-
       ciated with ATMARP_Sync traffic.  The anti-entropy procedure for
       a neighbor terminates when all "not hot" ATMARP table entries
       have been successfully sent to that neighbor.  The details on
       transitioning a neighbor from "down" to "up" status is presented
       later in this section.

   3.  After all anti-entropy processes have terminated, the ATMARP
       server may begin normal "hot" rumor mongering processing.

8.7.4 Rumor Mongering - The Sender

   The following guidelines govern the sending rumor mongering process:

   1.  Each table entry marked as "hot" is treated as a separate rumor.

   2.  For each "hot" rumor, the server maintains awareness of which of
       its neighbors it has infected with that rumor.  If the "hot"
       rumor was received from an ATMARP_Sync ATMARP_Rumor message, the
       neighbor which sent the message is marked as infective before
       rumor mongering is started.

   3.  For each uninfected neighbor, the server selects a neighbor at
       random and transmits an uniquely serialized ATMARP_Sync rumor
       message and waits for an ATMARP_Sync acknowledgment for that
       serial number.  If an ACK_Heard or ACK_NotHeard is received, the
       server marks the neighbor as "infected", examines the feedback,
       and notes whether the neighbor has heard the rumor: i.e., and
       ACK_Heard versus an ACK_NotHeard.  If three or more neighbors
       have already heard the rumor or if all neighbors are infected,
       the table entry is marked as "not hot" and rumor mongering termi-
       nates for that entry.  If an ATMARP_Sync acknowledgement is not
       received within 5 seconds, the sending server marks the neighbor
       as "down", and closes any VC to that neighbor that has been asso-
       ciated with ATMARP_Sync traffic.  The details on transitioning a
       neighbor from "down" to "up" status is presented later in this



Laubach                                                        [Page 24]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       section.

8.7.5 Rumor Mongering - The Receiver

   The following guidelines apply to receiving a rumor.  An ATMARP
   server, upon receiving an ATMARP_Sync ATMARP_Rumor message, examines
   its ATMARP table:

   1.  If an entry does not exist, a new entry is created based upon the
       rumor information presented in the message, it is marked as
       "hot", the entry's origin address is set to the ATMARP_Sync mes-
       sage's indicated origin address, and the the origin timestamp is
       set to the ATMARP_Sync message's indicated origin timestamp, and
       the entry local timestamp is initialized.  An ATMARP_Sync
       ACK_NotHeard is returned, indicating the same serial number as
       the received ATMARP_Sync ATMARP_Rumor.

   2.  If an entry exists, the server examines the indicated origin
       information. If the message's origin address is the same as the
       table's origin address and the message's origin timestamp is the
       same as the table origin timestamp: the local timestamp is not
       updated; the entry is NOT marked as "hot"; and an ATMARP_Sync
       ACK_Heard is returned indicating the same serial number as the
       received ATMARP_Sync ATMARP_Rumor.

   3.  If an entry exists, the server examines the indicated origin
       information. If the message's origin address is the same as the
       table's origin address and the message's origin timestamp is NOT
       the same as the table origin timestamp: the origin timestamp is
       updated to the message's origin timestamp; the local timestamp is
       updated; the entry is marked as "hot"; and an  ATMARP_Sync
       ACK_NotHeard is returned indicating the same serial number as the
       received ATMARP_Sync ATMARP_Rumor.

   4.  If an entry exists, the server examines the indicated origin
       information. If the message's origin address is NOT the same as
       the table's origin address: the origin address is updated to the
       message's origin timestamp; the origin timestamp is updated to
       the message's origin timestamp; the local timestamp is updated;
       the entry is marked as "hot"; and an  ATMARP_Sync ACK_NotHeard is
       returned indicating the same serial number as the received
       ATMARP_Sync.

8.7.6 Restarting Connections to "Down" Neighbors

   The following guidelines apply to reopening and restarting an
   LLC/SNAP ATMARP_Sync message VC to a neighbor which has been previ-
   ously marked as "down".



Laubach                                                        [Page 25]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   1.  An ATMARP server MUST detect if it has received a successful con-
       nection setup for an LLC/SNAP VC from a neighbor which has been
       previously marked as "down".  If any ATMARP_Sync messages are
       received on that VC, the neighbor is then marked as "up", any
       local restart or waiting process is terminated, and an anti-
       entropy synchronization process is started with that neighbor (as
       described in Section 8.7.3 Server Startup Operation).  Note that
       normal "hot" rumor mongering to that neighbor is suspended while
       any anti-entropy synchronization process is in progress.

   2.  An ATMARP server waits for a time period between 4.0 to 6.0 min-
       utes before attempting to restart a connection to a "down" neigh-
       bor.  The actual time between 4.0 and 6.0 minutes is selected at
       random by the server.  After the wait period expires, if the
       neighbor state is still "down", the server attempts to open an
       LLC/SNAP VC to that neighbor.  After a successful opening of the
       VC, an anti-entropy synchronization process is started with that
       neighbor (as described in Section 8.7.3 Server Startup Opera-
       tion).  After the first ATMARP_Sync acknowledgement (ACK_Heard or
       ACK_NotHeard) is received from the neighbor, that neighbor is
       marked as "up".  Note that normal "hot" rumor mongering to any
       neighbor is suspended while the anti-entropy synchronization pro-
       cess is in progress.

8.7.7 Managing Multiple VCs Between Neighbors

   An ATMARP server MUST maintain only one synchronization VC between
   itself and a neighbor server.  The following guidelines apply to
   closing VCs when multiple ATMARP synchronization VCs have been opened
   between the same two neighbors.

   1.  An ATMARP server, if it detects it has more than one synchroniza-
       tion VC open to a neighbor, MUST examine the serial numbers of
       the ATMARP_Sync messages that have been received and transmitted
       on the VCs in question.  It is presumed that the "dueling" neigh-
       bors are each transmitting their ATMARP_Sync messages on the VCs
       that they opened.

   2.  The ATMARP server performs an integer comparison between the two
       serial numbers.  If the serial numbers differ, the VC associated
       with the lesser serial number is closed and the remaining open VC
       is used for server-to-server messages.  If the serial numbers are
       equal, the ATMARP server waits for 5 minutes before attempting
       the comparison again.

   3.  In the case of multiple synchronization VCs between an ATMARP
       server and a neighbor: if a server notes a remote initiated VC
       closure on one of the VCs, it MUST shift its use to one of the



Laubach                                                        [Page 26]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       remaining open VCs for ATM synchronization messages, and continue
       normal operation; i.e., if there are multiple synchronization VCs
       open between neighbors and one VC closes, this is normal, take
       note, and continue normal operation using a remaining open syn-
       chronization VC to that neighbor.




8.8 ATMARP Packet Formats

       Internet addresses are assigned independently of ATM addresses.
       Each host implementation MUST know its own IP and ATM address(es)
       and MUST respond to address resolution requests appropriately.
       IP members MUST also use ATMARP and InATMARP to resolve IP
       addresses to ATM addresses when needed.

       Note: the ATMARP packet format presented in this memo is general
       in nature in that the ATM number and ATM subaddress fields SHOULD
       map directly to the corresponding UNI 3.1 fields used for ATM
       call/connection setup signalling messages.  The IP over ATM Work-
       ing Group expects ATM Forum NSAPA numbers (Structure 1) to pre-
       dominate over E.164 numbers (Structure 2) as ATM endpoint identi-
       fiers within ATM LANs.  The ATM Forum's VC Routing specification
       is not complete at this time and therefore its impact on the
       operational use of ATM Address Structure 3 is undefined. The ATM
       Forum will be defining this relationship in the future.  It is
       for this reason that IP members need to support all three ATM
       address structures.

8.8.1 ATMARP/InATMARP Request and Reply Packet Formats

       The ATMARP and InATMARP request and reply protocols use the same
       hardware type (ar$hrd), protocol type (ar$pro), and operation
       code (ar$op) data formats as the ARP and InARP protocols [3,12].
       The location of these three fields within the ATMARP packet are
       in the same byte position as those in ARP and InARP packets.  A
       unique hardware type value has been assigned for ATMARP.  In
       addition, ATMARP makes use of an additional operation code for
       ARP_NAK.  The remainder of the ATMARP/InATMARP packet format is
       different than the ARP/InARP packet format.

       The ATMARP and InATMARP protocols have several fields that have
       the following format and values:







Laubach                                                        [Page 27]

DRAFT             Classical IP and ARP over ATM Update       August 1995


       Data:
         ar$hrd   16 bits  Hardware type
         ar$pro   16 bits  Protocol type
         ar$shtl   8 bits  Type & length (TL) of source ATM number (q)
         ar$sstl   8 bits  Type & length (TL) of source ATM subaddress (r)
         ar$op    16 bits  Operation code (request, reply, or NAK)
         ar$spln   8 bits  Length of source protocol address (s)
         ar$thtl   8 bits  Type & length (TL) of target ATM number (x)
         ar$tstl   8 bits  Type & length (TL) of target ATM subaddress (y)
         ar$tpln   8 bits  Length of target protocol address (z)
         ar$sha   qoctets of source ATM number
         ar$ssa   roctets of source ATM subaddress
         ar$spa   soctets of source protocol address
         ar$tha   xoctets of target ATM number
         ar$tsa   yoctets of target ATM subaddress
         ar$tpa   zoctets of target protocol address

       Where:
         ar$hrd  -  assigned to ATM Forum address family and is
                    19 decimal (0x0013) [4].

         ar$pro  -  see Assigned Numbers for protocol type number for
                    the protocol using ATMARP. (IP is 0x0800).

   [changebar on]

         ar$shtl -  Type and length of source ATM number.  See
                    Section 8.8.4 for TL encoding details.

         ar$sstl -  Type and length of source ATM subaddress.  See
                    Section 8.8.4 for TL encoding details.

         ar$op   -  The operation type value (decimal):

                ATMARP_Request   = ARP_REQUEST   = 1
                ATMARP_Reply     = ARP_REPLY     = 2
                InATMARP_Request = InARP_REQUEST = 8
                InATMARP_Reply   = InARP_REPLY   = 9
                ATMARP_NAK       = ARP_NAK       = 10

     ar$spln -  length in octets of the source protocol address. Value
                range is 0 or 4 (decimal).  For IPv4 ar$spln is 4.

     ar$thtl -  Type and length of target ATM number.  See
                Section 8.8.4 for TL encoding details.

     ar$tstl -  Type and length of target ATM subaddress.  See
                Section 8.8.4 for TL encoding details.



Laubach                                                        [Page 28]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   [changebar off]

     ar$tpln -  length in octets of the target protocol address. Value
                range is 0 or 4 (decimal).  For IPv4 ar$tpln is 4.

     ar$sha  -  source ATM number (E.164 or ATM Forum NSAPA)

     ar$ssa  -  source ATM subaddress (ATM Forum NSAPA)

     ar$spa  -  source protocol address

     ar$tha  -  target ATM number (E.164 or ATM Forum NSAPA)

     ar$tsa  -  target ATM subaddress (ATM Forum NSAPA)

     ar$tpa  -  target protocol address

8.8.2 ATMARP Synchronization Packet Format

   The ATMARP Synchronization protocol packet uses the same hardware
   type (ar$hrd), protocol type (ar$pro), and operation code (ar$op)
   data formats as the ATMARP and InATMARP packets.  The location of
   these three fields within the ATMARP packet are in the same byte
   position as those in ARP and InARP packets [2,3].  The ATMARP_Sync
   message makes use of an additional operation code (ar$op) for
   ATMARP_Sync.  The type of synchronization packet is specified in the
   Sync message type field (ar$styp).  This memo defines four synchro-
   nization message types: ATMARP rumor synchronization (ATMARP_Rumor);
   acknowledgement and the rumor has not been previously heard
   (ACK_NotHeard); acknowledgement and the rumor has been heard previ-
   ously (ACK_Heard); and the requested synchronization type is not sup-
   ported.

   ATMARP rumor synchronization packets use an additional message field
   (ar$msg) to encode the ATMARP rumor that is being passed. This mes-
   sage field is not present on ACK_NotHeard or ACK_Heard messages.

   Note: it is the intent of this memo to acknowledge the rumoring mech-
   anism is general in nature and that future ATMARP synchronization
   message types can be defined based on this packet structure such that
   the message field (ar$msg) is exploited for new synchronization mes-
   sage types.









Laubach                                                        [Page 29]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   Data:
     ar$hrd   16 bits  Hardware type
     ar$pro   16 bits  Protocol type
     ar$ohtl   8 bits  Type & length (TL) of origin ATM number (q)
     ar$ostl   8 bits  Type & length (TL) of origin ATM subaddress (r)
     ar$op    16 bits  Operation code (ATMARP_Sync)
     ar$sn    32 bits  Serial Number
     ar$ots   32 bits  Origin timestamp
     ar$styp   8 bits  Sync message type (ACK_NotHeard/Heard, ATMARP_Rumor)
     ar$oha   qoctets  of origin ATM number
     ar$osa   roctets  of origin ATM subaddress
     ar$msg   moctets  of synchronization message

   Where:
     ar$hrd  -  assigned to ATM Forum address family and is
                19 decimal (0x0013) [4].

     ar$pro  -  see Assigned Numbers for protocol type number for
                the protocol using ATMARP. (IP is 0x0800).

     ar$ohtl -  Type and length of origin server's ATM number.
                See Section 8.8.4 for TL encoding details.

     ar$ostl -  Type and length of origin server's ATM subaddress.
                See Section 8.8.4 for TL encoding details.

     ar$op   -  The operation type value (decimal):

                ATMARP_Sync   = ??


     ar$osn  -  32 bit unsigned integer representing the sending
                server's serial number for this ATMARP synchronization
                packet.

     ar$ots  -  32 bit unsigned integer representing the origin timestamp
                of the originating server for this message.

     ar$styp -  8 bit (1 octet) unsigned integer representing the ATMARP
                synchronization message type.  The value in decimal
                for the messages are:

                   SYNC_Unsup      = 0
                   ATMARP_Rumor    = 1
                   ACK_NotHeard    = 2
                   ACK_Heard       = 3

     ar$oha  -  origin ATM number (E.164 or ATM Forum NSAPA).  This



Laubach                                                        [Page 30]

DRAFT             Classical IP and ARP over ATM Update       August 1995


                is the ATM number of the originating server.

     ar$osa  -  origin ATM subaddress (ATM Forum NSAPA).  If present,
                this is the ATM subaddress of the originating server.

     ar$msg  -  synchronization message

   For ATMARP_Rumor synchronization messages, ar$msg is variable in
   length and encoded with the following values:

   Data:
     ar$rhtl   8 bits  Type & length (TL) of rumor ATM number (x)
     ar$rstl   8 bits  Type & length (TL) of rumor ATM subaddress (y)
     ar$rpln   8 bits  Length of rumor protocol address (z)
     ar$rha    xoctets of rumor ATM number
     ar$rsa    yoctets of rumor ATM subaddress
     ar$rpa    zoctets of rumor protocol address

   Where:
     ar$rhtl -  Type and length of rumor ATM number.  See
                Section 8.8.4 for TL encoding details.

     ar$rstl -  Type and length of rumor ATM subaddress.  See
                Section 8.8.4 for TL encoding details.

     ar$rpln -  Length in octets of the rumor protocol address.
                For IPv4 ar$rpln is 4.

     ar$rha  -  Rumor ATM number (E.164 or ATM Forum NSAPA)

     ar$rsa  -  Rumor ATM subaddress (ATM Forum NSAPA)

     ar$rpa  -  Rumor protocol address

   The coding of these values in ar$msg obey the same conventions as
   presented in the ATMARP and InATMARP packet format.  The specifics on
   coding TL and ATM addresses is detailed in Section 8.8.4.  The
   rumored information content for these fields is exactly replicated
   from the ATMARP client registration information presented to the
   originating server.

   For ACK_Heard and ACK_NotHeard message types, the ar$msg field is not
   used and no storage is allocated for the field in the packet.  For
   these message types, the received ATMARP_Sync ATMARP_Rumor packet is
   kept in its entirety.  When the station is ready to transmit an
   acknowledgement, the ATMARP_Sync packet data is exactly copied (e.g.
   using bcopy) for transmission omitting the trailing ar$msg field
   (ar$msg storage is not allocated) and the synchronization message



Laubach                                                        [Page 31]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   type code (ar$styp) is changed from ATMARP_Rumor to ACK_NotHeard or
   ACK_Heard as appropriate for the feedback from the receiving ATMARP
   server.

   Receiving Unknown Synchronization Message Types

   If an ATMARP server receives an ATMARP_Sync message type (ar$styp)
   for which it is not coded to support, the server must transmit a Syn-
   chronization Type Unsupported (SYNC_Unsup) message to the sender
   using the same VC on which the unsupported ATMARP Synchronization
   message was received.  The unsupported message is constructed by 1)
   exactly copying the ATMARP_Sync ATMARP_Rumor packet data (e.g. using
   bcopy); 2) replacing the trailing ar$msg field (if present) with the
   unsupported return message; and 3) changing the synchronization mes-
   sage type code (ar$styp) to SYNC_Unsup.

   The new message field (ar$msg) is constructed as a 1 octet counter
   followed by an array of 1 octet ar$styp values, with one array ele-
   ment set to each of the synchronization message types which are sup-
   ported by this server.  For servers coded to this memo, the array
   returned then encodes ATMARP_Rumor, ACK_NotHeard, and ACK_Heard.
   which occupies 3 octets of array message.  Synchronization message
   types MUST be listed in ascending numerical order and each type MUST
   only be listed once in the array.  The SYNC_Unsup type is implied
   with receipt of this message.

   For SYNC_Unsup messages, ar$msg is variable in length and encoded
   with the following values:

   Data:
     ar$ucnt  1 octet  Counter of elements in the array (u)
     ar$uary  uoctets  Array of unsupported message types

   Where:
     ar$ucnt -  1 Octet unsigned integer representing the count
                of the number of elements in the ar$uary array.

     ar$uary -  Array of 1 octet ar$styp values representing the
                synchronization message types this server supports.

   For servers implemented to this memo, ar$msg is 4 octets in length
   and is coded as follows:









Laubach                                                        [Page 32]

DRAFT             Classical IP and ARP over ATM Update       August 1995


                   1 octet Unsigned
                    Integer (Hex)      Message Type

                  MSB           LSB
                   +-------------+
      Counter      |    0x03     |
                   +-------------+
      Element 0    |    0x01     |     ATMARP_Rumor
                   +-------------+
              1    |    0x02     |     ACK_NotHeard
                   +-------------+
              2    |    0x03     |     ACK_Heard
                   +-------------+

   This protocol feature allows future extensibility of the synchroniza-
   tion protocol for new feature addition while maintaining backwards
   compatibility for then-existing implementations.

8.8.3 Receiving Unknown ATMARP packets

   If an ATMARP client receives an ATMARP message with an operation code
   (ar$op) for which it is not coded to support, it MUST gracefully dis-
   card the message and continue normal operation.  An ATMARP client is
   NOT REQUIRED to return any message to the sender of the unsupported
   message.

   If an ATMARP server receives an ATMARP message with an operation code
   (ar$op) for which it is not coded to support, the server MUST return
   an ATMARP Opcode Not Supported (ATMARP_Unsup) message to the sender
   using the same VC on which the unsupported ATMARP message was
   received.  The format of the message is as follows:

   Data:
     ar$hrd     16 bits  Hardware type
     ar$pro     16 bits  Protocol type
     ar$shtl     8 bits  Type & length (TL) of server ATM number (q)
     ar$sstl     8 bits  Type & length (TL) of server ATM subaddress (r)
     ar$op      16 bits  Operation code (ATMARP_Unsup)
     ar$sha     qoctets  of server ATM number
     ar$ssa     roctets  of server ATM subaddress
     ar$opcnt    8 bits  Number of entries in ar$opary - opcode count (w)
     ar$opary w*16 bits  Array of w * ar$op values









Laubach                                                        [Page 33]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   Where:
     ar$hrd   - assigned to ATM Forum address family and is
                19 decimal (0x0013) [4].

     ar$pro   - see Assigned Numbers for protocol type number for
                the protocol using ATMARP. (IP is 0x0800).

     ar$shtl  - Type and length of server ATM number.  This is
                the ATM number of the server sending this message.
                See Section 8.8.4 for TL encoding details.

     ar$sstl  - Type and length of client ATM subaddress.  This is
                the ATM subaddress of the server sending this message.
                See Section 8.8.4 for TL encoding details.

     ar$op    - The operation type value (decimal):

                ATMARP_Unsup   = ??

     ar$sha   - server ATM number (E.164 or ATM Forum NSAPA)

     ar$ssa   - server ATM subaddress (ATM Forum NSAPA)

     ar$opcnt - 8 bit unsigned integer representing the number  of
                entries in ar$opary.

     ar$opary - Array of 16-bit ar$op values representing the ATMARP
                operation codes this server supports.


   The ar$opary element is constructed as an array of unsigned 16-bit
   ar$op values, with one array element set to each of the ATMARP opera-
   tion codes which are supported by this server.  For servers coded to
   this memo, the array returned encodes the ATMARP_Request,
   ATMARP_Reply, InATMARP_Request, InATMARP_Reply, ATMARP_Nak, and
   ATMARP_Sync opcodes.  Opcodes MUST be listed in ascending numerical
   order.  Each opcode MUST only be listed once in the array.  The
   ATMARP_Unsup opcode is implied with receipt of this message.

   For servers implemented to this memo, ar$opcnt has a value of 6 deci-
   mal and ar$opary array coded as follows:










Laubach                                                        [Page 34]

DRAFT             Classical IP and ARP over ATM Update       August 1995


                    16-bit Unsigned
                     Integer (Hex)       Message Type

                  MSB             LSB
                   +---------------+
      Element 0    |    0x0001     |     ATMARP_Request
                   +---------------+
              1    |    0x0002     |     ATMARP_Reply
                   +---------------+
              2    |    0x0008     |     InATMARP_Request
                   +---------------+
              3    |    0x0009     |     InATMARP_Reply
                   +---------------+
              4    |    0x000A     |     ATMARP_Nak
                   +---------------+
              5    |    0x00??     |     ATMARP_Sync
                   +---------------+

   If an ATMARP client receives an ATMARP message with an operation code
   (ar$op) of ATMARP_Unsup, it MUST gracefully process the message and
   continue normal operation.  The client MAY wish to take other imple-
   mentation dependent action based upon the contents of this message.
   Any such action is beyond the scope of this memo.

   This protocol message allows future extensibility of the ATMARP pro-
   tocol for new feature additions of ATMARP servers while maintaining
   backwards compatibility for then-existing implementations.

8.8.4 TL, ATM Number, and ATM Subaddress Encoding

   The encoding of the 8-bit TL (type and length) fields in ATMARP and
   In_ATMARP packets is as follows:


     MSB   8     7     6     5     4     3     2     1   LSB
        +-----+-----+-----+-----+-----+-----+-----+-----+
        |  0  | 1/0 |   Octet length of address         |
        +-----+-----+-----+-----+-----+-----+-----+-----+

   Where:
     bit.8   (reserved) = 0  (for future use)

     bit.7   (type)     = 0  ATM Forum NSAPA format
                        = 1  E.164 format

     bit.6-1 (length)   = 6 bit unsigned octet length of address
                          (MSB = bit.6, LSB = bit.1)  Value
                          range is from 0 to 20 (decimal).



Laubach                                                        [Page 35]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   [changebar on]

   ATM addresses, as defined by the ATM Forum UNI 3.1 signaling specifi-
   cation [9], include a "Calling Party Number Information Element" and
   a "Calling Party Subaddress Information Element". These Information
   Elements (IEs) SHOULD map to ATMARP/InATMARP source ATM number and
   source ATM subaddress respectively. Furthermore, ATM Forum defines a
   "Called Party Number Information Element" and a "Called Party Subad-
   dress Information Element".  These IEs map to ATMARP/InATMARP target
   ATM number and target ATM subaddress respectively.

   [changebar off]

   The ATM Forum defines three structures for the combined use of number
   and subaddress [9]:

                        ATM Number      ATM Subaddress
                      --------------    --------------
        Structure 1   ATM Forum NSAPA        null
        Structure 2       E.164              null
        Structure 3       E.164         ATM Forum NSAPA

   [changebar on]

   ATMARP and InATMARP requests and replies for ATM address structures 1
   and 2 MUST indicate a null or unknown ATM subaddress by setting the
   appropriate subaddress length to zero; i.e. ar$sstl.length = 0 or
   ar$tstl.length = 0, the corresponding type field (ar$sstl.type or
   ar$tstl.type) MUST be ignored and the physical space for the ATM sub-
   address buffer MUST not be allocated in the ATMARP packet. For exam-
   ple, if ar$sstl.length=0, the storage for the source ATM subaddress
   is not allocated and the first byte of the source protocol address
   ar$spa follows immediately after the last byte of the source hardware
   address ar$sha in the packet.

   Null or unknown ATM addresses are MUST be indicated by setting the
   appropriate address length to zero; i.e., ar$shtl.length and
   ar$thtl.length is zero and the corresponding type field (ar$sstl.type
   or ar$tstl.type) MUST be ignored and the physical space for the ATM
   address or ATM subaddress buffer MUST not be allocated in the ATMARP
   packet.

8.8.5 ATMARP_NAK Packet Format

   The ATMARP_NAK packet format is the same as the received
   ATMARP_Request packet format with the operation code set to ARP_NAK,
   i.e., the ATMARP_Request packet data is exactly copied (e.g. using
   bcopy) for transmission with the ATMARP_Request operation code



Laubach                                                        [Page 36]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   changed to ARP_NAK value.

8.8.6 Variable Length Requirements for ATMARP Packets

   ATMARP, InATMARP, and ATMARP_Sync packets are variable in length.

   A null or unknown source or target protocol address is indicated by
   the corresponding length set to zero: e.g., when ar$spln or ar$tpln
   is zero the physical space for the corresponding address structure
   MUST not be allocated in the packet.

   For backward compatibility with previous implementations, a null IPv4
   protocol address may be received with length = 4 and an allocated
   address in storage set to the value 0.0.0.0. Receiving stations MUST
   be liberal in accepting this format of a null IPv4 address, however
   on transmitting an ATMARP or InATMARP packet, a null IPv4 address
   MUST only be indicated by the length set to zero and MUST have no
   storage allocated.

   [changebar off]

8.8 ATMARP/InATMARP Packet Encapsulation

   ATMARP and InATMARP packets are to be encoded in AAL5 PDUs using
   LLC/SNAP encapsulation. The format of the AAL5 CPCS-SDU payload field
   for ATMARP/InATMARP PDUs is:

               Payload Format for ATMARP/InATMARP PDUs:
               +------------------------------+
               |        LLC 0xAA-AA-03        |
               +------------------------------+
               |        OUI 0x00-00-00        |
               +------------------------------+
               |     Ethertype 0x08-06        |
               +------------------------------+
               |                              |
               |   ATMARP/InATMARP Packet     |
               |                              |
               +------------------------------+

   The LLC value of 0xAA-AA-03 (3 octets) indicates the presence of a
   SNAP header.

   The OUI value of 0x00-00-00 (3 octets) indicates that the following
   two-bytes is an ethertype.

   The Ethertype value of 0x08-06 (2 octets) indicates ARP [4].




Laubach                                                        [Page 37]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   The total size of the LLC/SNAP header is fixed at 8-octets. This
   aligns the start of the ATMARP packet on a 64-bit boundary relative
   to the start of the AAL5 CPCS-SDU.

   The LLC/SNAP encapsulation for ATMARP/InATMARP presented here is con-
   sistent with the treatment of multiprotocol encapsulation of IP over
   ATM AAL5 as specified in [2] and in the format of ATMARP over IEEE
   802 networks as specified in [5].

   Traditionally, address resolution requests are broadcast to all
   directly connected IP members within a LIS. It is conceivable in the
   future that larger scaled ATM networks may handle ATMARP requests to
   destinations outside the originating LIS, perhaps even globally;
   issues raised by ATMARPing outside the LIS or by a global ATMARP
   mechanism are beyond the scope of this memo.

9.  IP Broadcast Address

   ATM does not support broadcast addressing, therefore there are no
   mappings available from IP broadcast addresses to ATM broadcast ser-
   vices. Note: this lack of mapping does not restrict members from
   transmitting or receiving IP datagrams specifying any of the four
   standard IP broadcast address forms as described in [8].  Members,
   upon receiving an IP broadcast or IP subnet broadcast for their LIS,
   MUST process the packet as if addressed to that station.

   [changebar on]

   This memo recognizes the future development of standards and imple-
   mentations that will extend the operations as defined in this memo to
   provide an IP broadcast capability for use by the classical client.

   [changebar off]

10.  IP Multicast Address

   ATM does not support multicast address services, therefore there are
   no mappings available from IP multicast addresses to ATM multicast
   services.  Current IP multicast implementations (i.e., MBONE and IP
   tunneling, see [10]) will continue to operate over ATM based logical
   IP subnets if operated in the WAN configuration.

   This memo recognizes the future development of ATM multicast service
   addressing by the ATM Forum. When available and widely implemented,
   the roll-over from the current IP multicast architecture to this new
   ATM architecture will be straightforward.

   [changebar on]



Laubach                                                        [Page 38]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   This memo recognizes the future development of standards and imple-
   mentations that will extend the operations as defined in this memo to
   provide an IP multicast capability for use by the classical client.

   [changebar off]

11.  Security

   Not all of the security issues relating to IP over ATM are clearly
   understood at this time, due to the fluid state of ATM specifica-
   tions, newness of the technology, and other factors.

   It is believed that ATM and IP facilities for authenticated call man-
   agement, authenticated end-to-end communications, and data encryption
   will be needed in globally connected ATM networks.  Such future secu-
   rity facilities and their use by IP networks are beyond the scope of
   this memo.

   There are known security issues relating to host impersonation via
   the address resolution protocols used in the Internet [13].  No spe-
   cial security mechanisms have been added to the address resolution
   mechanism defined here for use with networks using IP over ATM.

11.  MIB Specification

   This section to be completed in a later revision of the Internet-
   Draft.

12.  Open Issues

   o   Automatic configuration of client ATM addresses via DHCP [19] or
       via ATM UNI 3.1 Interim Local Management Interface (ILMI) ser-
       vices would be a useful extended service addition to this docu-
       ment and should be addressed in a separate memo.

   o   ATMARP packets are not authenticated.  This is a potentially
       serious flaw in the overall system by allowing a mechanism by
       which corrupt information may be introduced into the server sys-
       tem.

   o   ATMARP_Sync rumor messages are currently unauthenticated.  It is
       possible to extend the protocol by adding an authenticated rumor
       type and specifying the new message details and operational
       requirements.







Laubach                                                        [Page 39]

DRAFT             Classical IP and ARP over ATM Update       August 1995


REFERENCES

   [1] Piscitello, D., and Lawrence, J., "IP and ARP over the SMDS Ser-
       vice", RFC-1209, USC/Information Sciences Institute, March 1991.

   [2] Heinanen, Juha, "Multiprotocol Encapsulation over ATM Adaptation
       Layer 5", RFC-1483, USC/Information Sciences Institute, July
       1993.

   [3] Plummer, D., "An Ethernet Address Resolution Protocol - or - Con-
       verting Network Addresses to 48.bit Ethernet Address for Trans-
       mission on Ethernet Hardware", RFC-826, MIT, November 1982.

   [4] Reynolds, J., and Postel, J., "Assigned Numbers", RFC-1340, USC/
       Information Sciences Institute, July 1992.

   [5] Postel, J., and Reynolds, J., "A Standard for the Transmission of
       IP Datagrams over IEEE 802 Networks", RFC-1042, USC/Information
       Sciences Institute, February 1988.

   [6] CCITT, "Draft Recommendation I.363", CCITT Study Group XVIII,
       Geneva, 19-29 January 1993.

   [7] CCITT, "Draft text for Q.93B", CCITT Study Group XI, 23 September
       - 2 October 1992.

   [8] Braden, R., "Requirements for Internet Hosts -- Communication
       Layers", RFC-1122, USC/Information Sciences Institute, October
       1989.

   [9] ATM Forum, "ATM User-Network Interface (UNI) Specification Ver-
       sion 3.1.", ISBN 0-13-393828-X, Prentice-Hall, Inc., Upper Saddle
       River, NJ, 07458, September, 1994.

   [10] Deering, S, "Host Extensions for IP Multicasting", RFC-1112,
       USC/Information Sciences Institute, August 1989.

   [11] Colella, Richard, and Gardner, Ella, and Callon, Ross, "Guide-
       lines for OSI NSAP Allocation in the Internet", RFC-1237,
       USC/Information Sciences Institute, July 1991.

   [12] Bradely, T., and Brown, C., "Inverse Address Resolution Proto-
       col", RFC-1293, USC/Information Sciences Institute, January 1992.

   [13] Bellovin, Steven M., "Security Problems in the TCP/IP Protocol
       Suite", ACM Computer Communications Review, Vol. 19, Issue 2, pp.
       32-48, 1989.




Laubach                                                        [Page 40]

DRAFT             Classical IP and ARP over ATM Update       August 1995


   [14] Demers, A., Gealy, M., Greene, D., Hauser, C., Irish, W., Lar-
       son, J., Manning, S., Shenker, S., Sturgis, H., Swinehart, D.,
       Terry, D., and Woods, D., "Epidemic Algorithms for Replicated
       Database Maintenance", CSL-89-1, Xerox Corporation, January,
       1989.

   [15] Knowles, S., "IESG Advice from Experience with Path MTU Discov-
       ery, RFC-1435, IESG, March 1993.

   [16] Kent C., and J. Mogul, "Fragmentation Considered Harmful", Pro-
       ceedings of the ACM SIGCOMM '87 Workshop on Frontiers in Computer
       Communications Technology, August 1987.

   [17] Mogul, J., and S. Deering, "Path MTU Discovery", RFC-1191,
       DECWRL, Stanford University, November 1990.

   [18] Katz, D., and Piscitello, D., "NBMA Next Hope Resolution Proto-
       col", draft-ietf-rolc-nhrp-04.txt, Internet Draft (work in
       progress), May 1995.

   [19] Droms, R., "Dynamic Host Configuration Protocol", RFC1541, Buck-
       nell University, October 1993.

   [20] Bound, J., Carpenter, B., Harrington, J., Houldsworth, J., and
       Lloyd, A., "OSI NSAPs and IPv6", draft-ietf-ipngwg- Internet
       Draft, (work in progress proposed for elevation to experimental
       status), August 1995.

   [21] Hinden, R, and Deering, S. "IP Version 6 Addressing Architec-
       ture", draft-ietf-ipngwg-addr-arch-03.txt, Internet Draft (work
       in progress), June 1995.

Author's Address

   Mark Laubach
   Com21, Inc.
   1991 Landings Drive
   Mountain View, CA 94043

   Phone: 415.254.5882
   FAX:   415.254.5883
   EMail: laubach@com21.com









Laubach                                                        [Page 41]

DRAFT             Classical IP and ARP over ATM Update       August 1995


Appendix A. Exploiting IPv4 Addresses inside an NSAPA in a LIS

   The procedures presented in this appendix MUST not change the
   implementation or interfere with the normal operation of any IP over
   ATM client.

   If implemented, the address format presented in this section MUST be
   followed, otherwise the information presented in this appendix in
   strictly informational in nature and should be regarded as suggested
   guidelines should such a procedure be used within an LIS.

A.1 General

   This appendix describes a method where an IPv4 address could
   be automatically embedded inside an NSAPA using an automatic procedure
   within the ATMARP server.  This would allow an LIS to operate using
   IPv4 addresses as ATM end point addresses without impacting client
   implementation; i.e., the entire process is carried out in a modified
   ATMARP server.

   The general requirements are that the ATM network for the LIS be
   capable of using this embedded NSAPA format.  The ATMARP server would
   be modified so that it knows the range of IPv4 addresses over which
   the algorithmic translation would be applied.  If the target protocol
   address were within the appropriate ranges, the translation would be
   applied to the target protocol of any ATMARP Request to produce the
   target ATM number for the ATMARP Reply.  ATM subaddresses would not be
   used in this model.  The client, after receiving the ATMARP Reply,
   would attempt to open a connection to the ATM endpoint address
   specified in the ATMARP Reply.  If the ATMARP Request target
   protocol address was outside the range of IPv4 addresses, the ATMARP
   server should return an ATMARP NAK to the client.

A.2 IPv4/NSAPA Embedded Format

   If it is required, for whatever reason, to embed an IPv4 address
   inside a 20-octet NSAP address, then the following format MUST be
   used.  The specific use of this embedding is to express an IPv4
   address within the ATM Forum address format.  The IPv4 address is
   actually embedded first in a 16-byte IPv6 NSAPA address using the
   conventions being developed in the IETF IPNG Working Group [20,21].

   The first three octets are an IDP in binary ICD format, using the ICD
   code allocated to the IANA, and meaning "this NSAPA embeds a 16 byte
   IPv6 address".  The last octet remains the NSAPA selector field.






Laubach                                                        [Page 42]

DRAFT             Classical IP and ARP over ATM Update       August 1995


         0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   0-3  |  AFI = 47     |   ICD = 0090                  |    0x00       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   4-7  |             0x00000000                                        |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   8-11 |             0x00000000                                        |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12-15|             0x000000                          | IPv4 (byte 0) |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   16-19|             IPv4 (bytes 1-3)                  |    0x00       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

B.3 Impact on Server-to-Server Synchronization

   If anyone wishes to implement this convention for all hosts located
   within a LIS, the ATMARP server synchronization mechanisms need not
   be used; the entire ATMARP Reply message is algorithmically derived
   from the ATMARP Request information, hence no ATMARP table informa-
   tion is needed within an ATMARP server, and no information need be
   shared with other servers.  The ATMARP server selection guidelines
   could still be followed as there may be more than one adapted ATMARP
   server providing the address resolution service for the LIS.  So long
   as all ATMARP servers are configured with the same range of IPv4
   addresses, the size of the LIS could be arbitrarily large, and each
   client would have access to more than one server for ATMARP address
   resolution.  By supporting the use of ATMARP NAK messages, NHRP
   servers could still be used to augment direct ATM connectivity with
   hosts located outside the LIS.





















Laubach                                                        [Page 43]



PAFTECH AB 2003-20262026-04-23 06:06:57