IPOA-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    transmission, Integer32, IpAddress, Counter32,
    Gauge32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    ipNetToMediaNetAddress, ipNetToMediaIfIndex,
    ipNetToMediaPhysAddress, ipAdEntAddr
        FROM IP-MIB

--  The following textual conventions are defined locally within
--  this MIB module.  They have been prefixed with 'Ipoa' to
--  distinguish them from their counterparts in the ATM-TC-MIB.
--  This was done so that the IPOA-MIB could be advanced as
--  a standards-based MIB without waiting for the ATM-TC-MIB.

--  AtmConnKind, AtmAddr
--      FROM ATM-TC-MIB

    InterfaceIndex, InterfaceIndexOrZero
        FROM IF-MIB
    ;

ipoaMIB MODULE-IDENTITY
    LAST-UPDATED "9802090000Z" -- February 9, 1998
    ORGANIZATION "IETF Internetworking Over NBMA Working
                  Group (ion)"
    CONTACT-INFO
        "Maria Greene (greene@xedia.com)
         Xedia Corp.

         Jim Luciani (jluciani@BayNetworks.com)
         Bay Networks

         Kenneth White (kennethw@vnet.ibm.com)
         IBM Corp.

         Ted Kuo (tkuo@eos.ncsu.edu)
         Bay Networks"
    DESCRIPTION
        "This module defines a portion of the management
        information base (MIB) for managing Classical IP and
        ARP over ATM entities."
    ::= { transmission 46 }

-- Textual Conventions

IpoaEncapsType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The encapsulation type used on a VC."
    SYNTAX      INTEGER {
                    llcSnap(1),
                    vcMuxed(2),
                    other(3)
                }

IpoaVpiInteger ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
        "An integer large enough to contain the value of a VPI."
    SYNTAX     Integer32 (0..255)

IpoaVciInteger ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
        "An integer large enough to contain the value of a VCI."
    SYNTAX     Integer32 (0..65535)

IpoaAtmAddr ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1x"
    STATUS  current
    DESCRIPTION
       "The ATM address used by the network entity.
        The semantics are implied by the length.
        The address types are:

        - no address (0 octets)
        - E.164 (8 octets)
        - NSAP (20 octets)

        In addition, when subaddresses are used IpoaAtmAddr
        may represent the concatenation of address and
        subaddress.  The associated address types are:

        - E.164, E.164 (16 octets)
        - E.164, NSAP (28 octets)
        - NSAP, NSAP (40 octets)
        Address lengths other than defined in this definition
        imply address types defined elsewhere.
        Note: The E.164 address is encoded in BCD format."
    SYNTAX   OCTET STRING (SIZE(0..40))

IpoaAtmConnKind ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
       "The use of call control.  The use is as follows:
           pvc(1)
              Virtual link of a PVC.  Should not be
              used in a PVC/SVC (i.e., SPVC)
              crossconnect.
           svcIncoming(2)
              Virtual link established after a
              received signaling request to setup
              an SVC.
           svcOutgoing(3)
              Virtual link established after a
              transmitted or forwarded signaling
              request to setup an SVC.
           spvcInitiator(4)
              Virtual link at the PVC side of an
              SVC/PVC crossconnect, where the
              switch is the initiator of the SPVC
              setup.
           spvcTarget(5)
              Virtual link at the PVC side of an
              SVC/PVC crossconnect, where the
              switch is the target of the SPVC
              setup.

        An spvcInitiator is always cross-connected to
        an svcOutgoing, and an spvcTarget is always
        cross-connected to an svcIncoming."
    SYNTAX   INTEGER {
                      pvc(1),
                      svcIncoming(2),
                      svcOutgoing(3),
                      spvcInitiator(4),
                      spvcTarget(5)
                     }

-- Top-level structure of the MIB

ipoaObjects        OBJECT IDENTIFIER ::= { ipoaMIB 1 }
ipoaNotifications  OBJECT IDENTIFIER ::= { ipoaMIB 2 }
ipoaConformance    OBJECT IDENTIFIER ::= { ipoaMIB 3 }

-- MIB Objects

ipoaLisTrapEnable  OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "Indicates whether ipoaLisCreate and ipoaLisDelete
        traps should be generated by this system.

        By default, this object should have the value
        enabled(1) for systems where ATMARP Servers are
        present and disabled(2) on systems where only
        clients reside."
    ::= { ipoaObjects 1 }

-- The ATM Logical IP Subnet (LIS) Table

ipoaLisTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaLisEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "There is one entry in this table for every Logical IP
        Subnet (LIS) of which this system is a member.

        The bulk of the objects in an ipoaLisEntry exists
        to control ATMARP for a particular LIS.  In a PVC only
        environment it is implementation dependent as to
        whether this table should be supported."
    ::= { ipoaObjects 2 }

ipoaLisEntry OBJECT-TYPE
    SYNTAX      IpoaLisEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single LIS of which this system
        is a member.

        Membership in a LIS is independent of the actual ATM
        interfaces being used.  The ipoaLisTable defines
        all LISs that a system is a member of.  The ipAddrTable
        and the ipoaClientTable provides the mapping from local
        IP address to ATM interface.  The ipoaLisIfMappingTable
        provides the mappings between Logical IP Subnets and
        interfaces.
        The ipoaLisTable is indexed by ipoaLisSubnetAddr (IP
        subnet address).  An entry in the ipoaLisTable should
        exist for each ipAddrEntry that is associated with an
        ATM related interface used for Classical IP and ARP
        over ATM traffic.

        Its ipAdEntAddr and ipAdEntNetMask when ANDed together
        should equal the ipoaLisSubnetAddr of the corresponding
        ipoaLisEntry."
    INDEX       { ipoaLisSubnetAddr }
    ::= { ipoaLisTable 1 }

IpoaLisEntry ::= SEQUENCE {
    ipoaLisSubnetAddr          IpAddress,
    ipoaLisDefaultMtu          Integer32,
    ipoaLisDefaultEncapsType   IpoaEncapsType,
    ipoaLisInactivityTimer     Integer32,
    ipoaLisMinHoldingTime      Integer32,
    ipoaLisQDepth              Integer32,
    ipoaLisMaxCalls            Integer32,
    ipoaLisCacheEntryAge       Integer32,
    ipoaLisRetries             Integer32,
    ipoaLisTimeout             Integer32,
    ipoaLisDefaultPeakCellRate Integer32,
    ipoaLisActiveVcs           Gauge32,
    ipoaLisRowStatus           RowStatus
}

ipoaLisSubnetAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP subnet address associated with this LIS."
    ::= { ipoaLisEntry 1 }

ipoaLisDefaultMtu OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The default MTU used within this LIS.  Note that the
        actual MTU used for a VC between two members of the
        LIS may be negotiated during connection setup and may
        be different than this value.  The ipoaVcNegotiatedMtu
        object indicates the actual MTU in use for a
        particular VC."
    DEFVAL { 9180 }
    ::= { ipoaLisEntry 2 }

ipoaLisDefaultEncapsType OBJECT-TYPE
    SYNTAX      IpoaEncapsType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The default encapsulation to use on VCs created for
        this LIS.  Note that the actual encapsulation type may
        be negotiated during connection setup and may be
        different than this value.  The
        ipoaVcNegotiatedEncapsType object indicates the actual
        encapsulation in use for a particular VC."
    DEFVAL { llcSnap }
    ::= { ipoaLisEntry 3 }

ipoaLisInactivityTimer OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The time, in seconds, before a call established for an
        ipNetToMediaEntry on a client will timeout due to no
        traffic being passed on the VC.  A value of 0 implies
        no time out."
    REFERENCE
        "RFC 1755, Sec. 3.4 VC Teardown"
    DEFVAL      { 1200 }
    ::= { ipoaLisEntry 4 }

ipoaLisMinHoldingTime OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The minimum amount of time, in seconds, that a call
        will remain open.  If 0 then ipoaInactivityTimer will
        completely determine when a call is terminated."
    REFERENCE
        "RFC 1755, Sec. 3.4 VC Teardown"
    DEFVAL      { 60 }
    ::= { ipoaLisEntry 5 }

ipoaLisQDepth OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    UNITS       "packets"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of outstanding requests that are
         allowed while waiting for ATMARP replies and
         InATMARP replies for this LIS."
    DEFVAL      { 1 }
    ::= { ipoaLisEntry 6 }

ipoaLisMaxCalls OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of SVCs that can be established
        simultaneously for this LIS."
    DEFVAL      { 500 }
    ::= { ipoaLisEntry 7 }

ipoaLisCacheEntryAge OBJECT-TYPE
    SYNTAX      Integer32 (60..1200)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The time, in seconds, before an ipNetToMediaEntry will
        age out of the table.  Note that the default value will
        be different for a client and a server.  An ATMARP
        Server should use a default of 1200 and a client should
        use 900."
    DEFVAL      { 900 }
    ::= { ipoaLisEntry 8 }

ipoaLisRetries OBJECT-TYPE
    SYNTAX      Integer32 (0..10)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of times the ATMARP request will be retried
        when no response is received in the timeout interval
        indicated by ipoaLisTimeout."
    DEFVAL      { 2 }
    ::= { ipoaLisEntry 9 }

ipoaLisTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..60)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The time to wait, in seconds, before retransmission
        of an ARP request."
    DEFVAL      { 10 }
    ::= { ipoaLisEntry 10 }

ipoaLisDefaultPeakCellRate OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This object is the signalling parameter that
         should be used when setting up all best effort
         VCCs (Virtual Channel Connections).
         This parameter applies to the forward and
         backward direction on a per best effort VCC basis.
         A value of zero implies that no configured default
         exists and that local policy should be used to
         determine the actual default to used during
         call setup.  ATM Signaling Support for IP over ATM
         (RFC 1755) recommends 1/10th of the ATM interface's
         speed."
    ::= { ipoaLisEntry 11 }

ipoaLisActiveVcs OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of active SVCs for this LIS."
    ::= { ipoaLisEntry 12 }

ipoaLisRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and deleted
        in the ipoaLisTable.

        When the ipoaLisRowStatus deleted (by setting this
        object to destroy(6)), this has the side-effect of
        removing all entries from the ipNetToMediaTable that
        are associated with this LIS (in other words, it
        flushes the entity's ATMARP cache).  It also removes
        the ipoaVcTable entries that were associated with those
        ipNetToMediaTable entries.  Destroying the row also
        removes the corresponding entries in the
        ipoaArpSrvrTable, ipoaArpClientTable,
        ipoaLisIfMappingTable, and ipoaArpRemoteSrvrTable.

        Entries in both the ipNetToMediaTable and the
        ipoaVcTable that are associated with a
        ipoaConfigPvcEntry are not affected by changes to
        ipoaLisRowStatus."
    REFERENCE
        "RFC 1903, 'Textual Conventions for Version 2 of the
        Simple Network Management Protocol (SNMPv2).'"
    ::= { ipoaLisEntry 13 }


-- The ATM Logical IP Subnet Interface Mapping Table

ipoaLisIfMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaLisIfMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "There is one entry in this table for every combination
         of ipoaLisEntry and IP over ATM interface."
    ::= { ipoaObjects 3 }

ipoaLisIfMappingEntry OBJECT-TYPE
    SYNTAX      IpoaLisIfMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines an entry in the ipoaLisIfMappingTable."
    INDEX  { ipoaLisSubnetAddr, ipoaLisIfMappingIfIndex }
    ::= { ipoaLisIfMappingTable 1 }

IpoaLisIfMappingEntry ::= SEQUENCE {
    ipoaLisIfMappingIfIndex   InterfaceIndex,
    ipoaLisIfMappingRowStatus RowStatus
}

ipoaLisIfMappingIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ipAdEntIfIndex object from an ipAddrEntry
         is used as an index to this table when its
         ipAdEntAddr is in the subnet implied by
         ipoaLisSubnetAddr."
    ::= { ipoaLisIfMappingEntry 1 }

ipoaLisIfMappingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and deleted
        in the ipoaLisIfMappingTable."
    REFERENCE
        "RFC 1903, 'Textual Conventions for Version 2 of the
        Simple Network Management Protocol (SNMPv2).'"
    ::= { ipoaLisIfMappingEntry 2 }

-- The ATMARP Client Table

ipoaArpClientTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaArpClientEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ATMARP clients running on this system."
    ::= { ipoaObjects 4 }

ipoaArpClientEntry OBJECT-TYPE
    SYNTAX      IpoaArpClientEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a single ATMARP Client.  Clients
        can be started and stopped by adding and removing
        entries from this table.  An entry in the
        ipoaArpClientTable has a corresponding entry in the
        ipAddrTable.  Both are indexed by ipAdEntAddr.
        The ifIndex and subnet mask of a client entry are the
        ipAddrEntry's ipAdEntIfIndex and ipAdEntNetMask,
        respectively.

        Note that adding and removing entries from this table
        may have the same effect on the corresponding
        ipAddrTable entry.  Row creation of an entry in this
        table requires that either the corresponding ipAddrTable
        entry exists or that ipAdEntIfIndex and ipAdEntNetMask
        be specified in the creation of an ipoaArpClientEntry
        at a minimum in order to create the corresponding
        ipAddrEntry.  Specification of ipAdEntBcastAddr and
        ipAdEntReasmMaxSize to complete an ipAddrEntry is
        implementation dependent.
        Whether a corresponding ipAddrEntry is deleted during
        the deletion of an ipoaArpClientEntry is considered
        implementation dependent."
    INDEX       { ipAdEntAddr }
    ::= { ipoaArpClientTable 1 }

IpoaArpClientEntry ::= SEQUENCE {
    ipoaArpClientAtmAddr             IpoaAtmAddr,
    ipoaArpClientSrvrInUse           IpoaAtmAddr,
    ipoaArpClientInArpInReqs         Counter32,
    ipoaArpClientInArpOutReqs        Counter32,
    ipoaArpClientInArpInReplies      Counter32,
    ipoaArpClientInArpOutReplies     Counter32,
    ipoaArpClientInArpInvalidInReqs  Counter32,
    ipoaArpClientInArpInvalidOutReqs Counter32,
    ipoaArpClientArpInReqs           Counter32,
    ipoaArpClientArpOutReqs          Counter32,
    ipoaArpClientArpInReplies        Counter32,
    ipoaArpClientArpOutReplies       Counter32,
    ipoaArpClientArpInNaks           Counter32,
    ipoaArpClientArpOutNaks          Counter32,
    ipoaArpClientArpUnknownOps       Counter32,
    ipoaArpClientArpNoSrvrResps      Counter32,
    ipoaArpClientRowStatus           RowStatus
}

ipoaArpClientAtmAddr OBJECT-TYPE
    SYNTAX      IpoaAtmAddr
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ATM address of the client."
    ::= { ipoaArpClientEntry 1 }

ipoaArpClientSrvrInUse OBJECT-TYPE
    SYNTAX      IpoaAtmAddr
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ATM address of the ATMARP Server,
        ipoaArpRemoteSrvrAtmAddr, in use by this client.  A
        zero length octet string implies that communication
        with a Remote ATMARP Server is not in effect."
    DEFVAL { ''H }
    ::= { ipoaArpClientEntry 2 }

ipoaArpClientInArpInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP requests received by this
        client."
    ::= { ipoaArpClientEntry 3 }

ipoaArpClientInArpOutReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP requests sent by this client."
    ::= { ipoaArpClientEntry 4 }

ipoaArpClientInArpInReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP replies received by this
        client."
    ::= { ipoaArpClientEntry 5 }

ipoaArpClientInArpOutReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of InATMARP replies sent by this client."
    ::= { ipoaArpClientEntry 6 }

ipoaArpClientInArpInvalidInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that this client detected an
        invalid InATMARP request."
    ::= { ipoaArpClientEntry 7 }

ipoaArpClientInArpInvalidOutReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that this client did not
        receive an InATMARP reply."
    ::= { ipoaArpClientEntry 8 }

ipoaArpClientArpInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP requests received by this
        client."
    ::= { ipoaArpClientEntry 9 }

ipoaArpClientArpOutReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP requests sent by this client."
    ::= { ipoaArpClientEntry 10 }

ipoaArpClientArpInReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP replies received by this
        client."
    ::= { ipoaArpClientEntry 11 }

ipoaArpClientArpOutReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP replies sent by this client."
    ::= { ipoaArpClientEntry 12 }

ipoaArpClientArpInNaks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of negative ATMARP replies
         received by this client."
    ::= { ipoaArpClientEntry 13 }

ipoaArpClientArpOutNaks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of negative ATMARP replies sent by
        this client.

        Classic IP and ARP over ATM does not require an
        ATMARP client to transmit an ATMARP_NAK upon
        receipt of an ATMARP request from another ATMARP
        client.  However, implementation experience has
        shown that this error condition is somewhat easy
        to create inadvertently by configuring one ATMARP
        client with an ipoaArpRemoteSrvrTable entry
        containing an ipoaArpRemoteSrvrAtmAddr value which
        is the ATM address of another ATMARP client-only
        system.

        If an ATMARP client supports the transmission of
        ATMARP_NAKs, then it should increment
        ipoaArpClientArpOutNaks each time it transmits
        an ATMARP_NAK.  Otherwise, support of this
        object is considered optional."
    ::= { ipoaArpClientEntry 14 }

ipoaArpClientArpUnknownOps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that this client received
         an ATMARP message with an operation code for which
         it is not coded to support."
    ::= { ipoaArpClientEntry 15 }

ipoaArpClientArpNoSrvrResps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this client failed to receive
         a response from a ATMARP Server within the
         ipoaLisTimeout value for ipoaLisRetries times.
         This may imply that the client will re-elect a
         new primary ATMARP Server for this LIS from the
         ipoaArpRemoteSrvrTable."
    ::= { ipoaArpClientEntry 16 }

ipoaArpClientRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and
        deleted from the ipoaArpClientTable."
    REFERENCE
        "RFC 1903, 'Textual Conventions for Version 2 of the
        Simple Network Management Protocol (SNMPv2).'"
    ::= { ipoaArpClientEntry 17 }

-- The ATMARP Server Table

ipoaArpSrvrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaArpSrvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ATMARP Servers running on this system."
    ::= { ipoaObjects 5 }

ipoaArpSrvrEntry OBJECT-TYPE
    SYNTAX      IpoaArpSrvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about an ATMARP Server within a LIS.  An
        entry in this table has two indexes: first ipAdEntAddr,
        which is the IP address that this system uses as a
        member of the LIS, and then ipoaArpSrvrAddr, which is
        the ATM address of the ATMARP Server.

        Entries may be created by a management application
        using the ipoaArpSrvrRowStatus object.  Entries in this
        table may also be created by the system and not by a
        management application, for example via ILMI.

        Entries in this table may be deleted by setting the
        ipoaArpSrvrRowStatus object to 'destroy(6)'.  This
        includes entries that were added by the system and not
        by a management application."
    INDEX  { ipAdEntAddr, ipoaArpSrvrAddr }
    ::= { ipoaArpSrvrTable 1 }

IpoaArpSrvrEntry ::= SEQUENCE {
    ipoaArpSrvrAddr                 IpoaAtmAddr,
    ipoaArpSrvrLis                  IpAddress,
    ipoaArpSrvrInArpInReqs          Counter32,
    ipoaArpSrvrInArpOutReqs         Counter32,
    ipoaArpSrvrInArpInReplies       Counter32,
    ipoaArpSrvrInArpOutReplies      Counter32,
    ipoaArpSrvrInArpInvalidInReqs   Counter32,
    ipoaArpSrvrInArpInvalidOutReqs  Counter32,
    ipoaArpSrvrArpInReqs            Counter32,
    ipoaArpSrvrArpOutReplies        Counter32,
    ipoaArpSrvrArpOutNaks           Counter32,
    ipoaArpSrvrArpDupIpAddrs        Counter32,
    ipoaArpSrvrArpUnknownOps        Counter32,
    ipoaArpSrvrRowStatus            RowStatus
}

ipoaArpSrvrAddr OBJECT-TYPE
    SYNTAX      IpoaAtmAddr
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ATM address of the ATMARP Server."
    ::= { ipoaArpSrvrEntry 1 }

ipoaArpSrvrLis OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The subnet address that identifies the LIS with
        which this server is associated."
    ::= { ipoaArpSrvrEntry 2 }

ipoaArpSrvrInArpInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP requests received by this
        ATMARP Server."
    ::= { ipoaArpSrvrEntry 3 }

ipoaArpSrvrInArpOutReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP requests sent by this ATMARP
        Server."
    ::= { ipoaArpSrvrEntry 4 }

ipoaArpSrvrInArpInReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP replies received by this
        ATMARP Server."
    ::= { ipoaArpSrvrEntry 5 }

ipoaArpSrvrInArpOutReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of InATMARP replies sent by this ATMARP
        Server."
    ::= { ipoaArpSrvrEntry 6 }

ipoaArpSrvrInArpInvalidInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of invalid InATMARP requests received by
         this ATMARP Server."
    ::= { ipoaArpSrvrEntry 7 }

ipoaArpSrvrInArpInvalidOutReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that this server did not receive
         an InATMARP reply."
    ::= { ipoaArpSrvrEntry 8 }

ipoaArpSrvrArpInReqs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP requests received by this
        ATMARP Server."
    ::= { ipoaArpSrvrEntry 9 }

ipoaArpSrvrArpOutReplies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of ATMARP replies sent by this ATMARP
        Server."
    ::= { ipoaArpSrvrEntry 10 }

ipoaArpSrvrArpOutNaks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of negative ATMARP replies sent by this
         ATMARP Server."
    ::= { ipoaArpSrvrEntry 11 }

ipoaArpSrvrArpDupIpAddrs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a duplicate IP address was
         detected by this ATMARP Server."
    ::= { ipoaArpSrvrEntry 12 }

ipoaArpSrvrArpUnknownOps OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that this ATMARP Server received
         an ATMARP message with an operation code for which it
         is not coded to support."
    ::= { ipoaArpSrvrEntry 13 }

ipoaArpSrvrRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and deleted
        from the ipoaArpSrvrTable."
    REFERENCE
        "RFC 1903, 'Textual Conventions for Version 2 of the
        Simple Network Management Protocol (SNMPv2).'"
    ::= { ipoaArpSrvrEntry 14 }

-- The Remote ATMARP Server Table

ipoaArpRemoteSrvrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaArpRemoteSrvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of non-local ATMARP Servers associated with a
        LIS.  An entry in this table has three indexes: first
        the ipoaLisSubnetAddr of the LIS for which the
        corresponding ATMARP Server provides ATMARP services,
        then the ipoaArpRemoteSrvrAtmAddr, which is the ATM
        address of the remote ATMARP Server, and finally the
        ifIndex of the interface on which the VC to the ATMARP
        Remote Server will be opened.  An ifIndex value of 0
        should be used when a single VC is to be shared for
        ATMARP purposes by multiple interfaces."
    ::= { ipoaObjects 6 }

ipoaArpRemoteSrvrEntry OBJECT-TYPE
    SYNTAX      IpoaArpRemoteSrvrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about one non-local ATMARP Server."
    INDEX  { ipoaLisSubnetAddr, ipoaArpRemoteSrvrAtmAddr,
             ipoaArpRemoteSrvrIfIndex }
    ::= { ipoaArpRemoteSrvrTable 1 }

IpoaArpRemoteSrvrEntry ::= SEQUENCE {
    ipoaArpRemoteSrvrAtmAddr      IpoaAtmAddr,
    ipoaArpRemoteSrvrRowStatus    RowStatus,
    ipoaArpRemoteSrvrIfIndex      InterfaceIndexOrZero,
    ipoaArpRemoteSrvrIpAddr       IpAddress,
    ipoaArpRemoteSrvrAdminStatus  INTEGER,
    ipoaArpRemoteSrvrOperStatus   INTEGER
}

ipoaArpRemoteSrvrAtmAddr OBJECT-TYPE
    SYNTAX      IpoaAtmAddr
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ATM address of the remote ATMARP Server."
    ::= { ipoaArpRemoteSrvrEntry 1 }

ipoaArpRemoteSrvrRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and deleted
        from the ipoaArpRemoteSrvrTable.

        Deleting an ipoaArpRemoteSrvrEntry (by setting this
        object to destroy(6)) may affect ipoaArpClientTable
        entries.  The object ipoaArpClientSrvrInUse in an
        ipoaArpClientSrvrEntry may contain the ATM address
        of an ATMARP Remote Server whose entry in the
        ipoaArpRemoteSrvrTable is being removed.  In this
        case, any corresponding ipoaArpClientSrvrInUse
        objects should be at a minimum invalidated by
        setting their values to that of a zero length
        OCTET STRING.

        The value of ipoaArpRemoteSrvrOperStatus should be
        consistent with that of ipoaArpRemoteSrvrRowStatus.
        For example, successfully setting the value of
        this object to notInService(2) after its being in
        the up(1) state should result in
        ipoaArpRemoteSrvrOperStatus being set to down(2)
        if currently up(1)."
    REFERENCE
        "RFC 1903, 'Textual Conventions for Version 2 of the
        Simple Network Management Protocol (SNMPv2).'"
    ::= { ipoaArpRemoteSrvrEntry 2 }

ipoaArpRemoteSrvrIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ifIndex of the interface that the VC to the
         Remote ATMARP Server is associated with."
    ::= { ipoaArpRemoteSrvrEntry 3 }

ipoaArpRemoteSrvrIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP Address of the Remote ATMARP Server.  A
        value of 0.0.0.0 implies that this address isn't
        known."
    DEFVAL { '00000000'H }
    ::= { ipoaArpRemoteSrvrEntry 4 }

ipoaArpRemoteSrvrAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
              up(1),  -- use this ATMARP Server
              down(2) -- stop using this ATMARP Server
            }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The desired state for use of the ATMARP Server
         represented by an entry in this table.
         ipoaArpRemoteSrvrAdminStatus values:

         up(1)   - Attempt to activate use of the
                   ATMARP Server represented by this
                   entry in the ipoaArpRemoteSrvrTable.
         down(2) - Deactivate use of this ATMARP
                   Server.

         When a managed system creates an entry in this
         table ipoaArpRemoteSrvrAdminStatus and
         ipoaArpRemoteSrvrOperStatus are initialized as
         down(2) by default."
    DEFVAL { down }
    ::= { ipoaArpRemoteSrvrEntry 5 }

ipoaArpRemoteSrvrOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
               up(1),  -- eligible for use
               down(2) -- not eligible for use
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current operational state for use of a Remote
         ATMARP Server.  An up(1) entry has a VC
         established to the respective Remote ATMARP
         Server:

         up(1)  - A VC exists to Remote ATMARP Server
                  whose IP Address is stored in
                  ipoaArpRemoteSrvrIpAddr.  This VC can
                  be determined by searching the
                  ipoaVcTable using
                  ipoaArpRemoteSrvrIfIndex (if not 0,
                  otherwise ignore ipNetToMediaIfIndex
                  index) and ipoaArpRemoteSrvrIpAddr.
                  An ipoaArpClientEntry should exist
                  with its ipoaArpClientSrvrInUse
                  object having the same value as
                  ipoaArpRemoteSrvrAtmAddr.
        down(2) - Entry exists without an active VC to
                  the Remote ATMARP Server.

        Transition from up(1) to down(2)
        status may affect ipoaArpClientTable entries.
        The object ipoaArpClientSrvrInUse in an
        ipoaArpClientSrvrEntry may contain the ATM address
        of an ATMARP Remote Server whose entry in the
        ipoaArpRemoteSrvrTable is being deactivated.  In
        this case, any corresponding ipoaArpClientSrvrInUse
        objects should be at a minimum invalidated by
        setting their values to that of a zero length
        OCTET STRING.

        If ipoaArpRemoteSrvrAdminStatus is down(2) then
        ipoaArpRemoteSrvrOperStatus should be down(2).
        If ipoaArpRemoteSrvrAdminStatus is changed to
        up(1) then ipoaArpRemoteSrvrOperStatus should
        change to up(1) if the Remote ATMARP Server
        entry can be activated."
    DEFVAL { down }
    ::= { ipoaArpRemoteSrvrEntry 6 }

-- The ATM VC Table

ipoaVcTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaVcEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A system that supports IP over ATM is an IP system and
        therefore MUST support all of the appropriate tables in
        the SNMPv2-MIB (RFC 1907), the IF-MIB (RFC 2233),
        the IP-MIB (RFC 2011), the TCP-MIB (RFC 2012), and
        the UDP-MIB (RFC 2013).  This includes the
        ipNetToMediaTable (the ARP cache) that is defined
        within the IP-MIB (RFC 2011).  The ipoaVcTable
        keeps a set of VCs for each entry in the ARP cache
        that was put there by an IP over ATM system acting
        as either a host or server.  The ipoaVcTable doesn't
        augment the ipNetToMediaTable (ARP Cache) since the
        the correspondence between tables is not necessarily
        one-to-one.

        An ipNetToMediaPhysAddress object should contain the
        content as defined by the IpoaAtmAddr textual
        convention when used to hold an IPOA-MIB ATM Address."
    ::= { ipoaObjects 7 }

ipoaVcEntry OBJECT-TYPE
    SYNTAX      IpoaVcEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A VC (permanent or switched) that this host or server
        has opened with another member of a LIS.  Additional
        information can be determined about the VC from the
        ATM-MIB.

        Entries in this table cannot be created by management
        applications.

        In an SVC environment, an entry is automatically added
        by the system as the result of ATMARP processing.

        In a PVC environment, an entry is automatically added
        to this table when an entry is created in the
        ipoaConfigPvcTable and the IP Address at the remote
        end of the PVC is discovered using InATMARP.  An
        entry also is added to the ipNetToMediaTable."
    INDEX       { ipNetToMediaIfIndex,
                  ipNetToMediaNetAddress,
                  ipoaVcVpi,
                  ipoaVcVci
                }
    ::= { ipoaVcTable 1 }


IpoaVcEntry ::= SEQUENCE {
    ipoaVcVpi                  IpoaVpiInteger,
    ipoaVcVci                  IpoaVciInteger,
    ipoaVcType                 IpoaAtmConnKind,
    ipoaVcNegotiatedEncapsType IpoaEncapsType,
    ipoaVcNegotiatedMtu        Integer32 }

ipoaVcVpi OBJECT-TYPE
    SYNTAX      IpoaVpiInteger
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VPI value for the Virtual Circuit."
    ::= { ipoaVcEntry 1 }

ipoaVcVci OBJECT-TYPE
    SYNTAX      IpoaVciInteger
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VCI value for the Virtual Circuit."
    ::= { ipoaVcEntry 2 }

ipoaVcType OBJECT-TYPE
    SYNTAX      IpoaAtmConnKind
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of the Virtual Circuit."
    ::= { ipoaVcEntry 3 }

ipoaVcNegotiatedEncapsType OBJECT-TYPE
    SYNTAX      IpoaEncapsType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The encapsulation type used when communicating over
        this circuit."
    ::= { ipoaVcEntry 4 }

ipoaVcNegotiatedMtu OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The MTU used when communicating over this circuit."
    ::= { ipoaVcEntry 5 }

-- The ATM Config PVC Table

ipoaConfigPvcTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IpoaConfigPvcEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table MUST be supported when PVCs are intended to
        be supported in order to enable the setup of PVCs for
        use by IP."
    ::= { ipoaObjects 8 }

ipoaConfigPvcEntry OBJECT-TYPE
    SYNTAX      IpoaConfigPvcEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines a single PVC that exists at this host for
        use by IP."
    INDEX       { ipoaConfigPvcIfIndex,
                  ipoaConfigPvcVpi,
                  ipoaConfigPvcVci
                }
    ::= { ipoaConfigPvcTable 1 }

IpoaConfigPvcEntry ::= SEQUENCE {
    ipoaConfigPvcIfIndex              InterfaceIndex,
    ipoaConfigPvcVpi                  IpoaVpiInteger,
    ipoaConfigPvcVci                  IpoaVciInteger,
    ipoaConfigPvcDefaultMtu           Integer32,
    ipoaConfigPvcRowStatus            RowStatus }

ipoaConfigPvcIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ifIndex of the ATM Interface that this PVC
         is associated with."
    ::= { ipoaConfigPvcEntry 1 }

ipoaConfigPvcVpi OBJECT-TYPE
    SYNTAX      IpoaVpiInteger
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VPI value for the Virtual Circuit."
    ::= { ipoaConfigPvcEntry 2 }

ipoaConfigPvcVci OBJECT-TYPE
    SYNTAX      IpoaVciInteger
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VCI value for the Virtual Circuit."
    ::= { ipoaConfigPvcEntry 3 }

ipoaConfigPvcDefaultMtu OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Classical IP and ARP over ATM allows use of
       other MTU values for PVCs but considers how a
       value other than 9180 could be selected to be out
       of scope.  ipoaConfigPvcDefaultMtu can be used to
       configure the MTU to be used for the PVC.
       Both ends MUST have the same value configured."
    DEFVAL { 9180 }
    ::= { ipoaConfigPvcEntry 4 }

ipoaConfigPvcRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "This object allows rows to be created and deleted in
       the ipoaConfigPvcTable.  Creation of an entry in this
       table should eventually result in the creation of an
       ipNetToMediaEntry and a corresponding ipoaVcEntry
       after InATMARP has determined the destination address
       of the remote system that the PVC is connected to.
       Setting this object to destroy(6) should remove the
       corresponding ipNetToMediaTable and ipoaVcTable
       entries."
   REFERENCE
       "RFC 1903, 'Textual Conventions for Version 2 of the
       Simple Network Management Protocol (SNMPv2).'"
   ::= { ipoaConfigPvcEntry 5 }


-- Notifications

ipoaTrapPrefix  OBJECT IDENTIFIER ::= { ipoaNotifications 0 }

ipoaMtuExceeded NOTIFICATION-TYPE
    OBJECTS {
        ipoaVcNegotiatedMtu
    }
    STATUS  current
    DESCRIPTION
        "A frame was received that exceeds the negotiated
        MTU size.  The VPI and VCI of the VC for which this
        condition was detected can be determined from the
        index values for ipoaVcNegotiatedMtu.  In addition,
        the ifIndex and IP Address can be determined as
        well (refer to the ipoaVcTable)."
    ::= { ipoaTrapPrefix 1 }

ipoaDuplicateIpAddress NOTIFICATION-TYPE
    OBJECTS {
        ipNetToMediaIfIndex,
        ipNetToMediaNetAddress,
        ipNetToMediaPhysAddress,
        ipNetToMediaPhysAddress
    }
    STATUS  current
    DESCRIPTION
        "The ATMARP Server has detected more than one ATM end
        point attempting to associate the same IP address with
        different ATM addresses."
    ::= { ipoaTrapPrefix 2 }

ipoaLisCreate NOTIFICATION-TYPE
    OBJECTS {
        ipoaLisSubnetAddr
    }
    STATUS  current
    DESCRIPTION
        "Generation of this trap occurs when an ipoaLisEntry is
        created while the ipoaLisTrapEnable.0 object has the
        value enabled(1)."
    ::= { ipoaTrapPrefix 3 }

ipoaLisDelete NOTIFICATION-TYPE
    OBJECTS {
        ipoaLisSubnetAddr
    }
    STATUS  current
    DESCRIPTION
        "Generation of this trap occurs when an ipoaLisEntry is
        deleted while the ipoaLisTrapEnable.0 object has the
        value enabled(1)."
    ::= { ipoaTrapPrefix 4 }

-- Conformance Definitions

ipoaGroups      OBJECT IDENTIFIER ::= { ipoaConformance 1 }

ipoaCompliances OBJECT IDENTIFIER ::= { ipoaConformance 2 }

-- compliance statements

ipoaCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for agents that support the
        IPOA-MIB."
    MODULE -- this module
        MANDATORY-GROUPS { ipoaGeneralGroup,
                           ipoaBasicNotificationsGroup
              }
        GROUP ipoaClientGroup
        DESCRIPTION
            "This group is mandatory for all hosts where IP
            over ATM client support is present."
        GROUP ipoaSrvrGroup
        DESCRIPTION
            "This group is mandatory for all hosts where ATMARP
            Servers are present."
        GROUP ipoaSrvrNotificationsGroup
        DESCRIPTION
            "This group is mandatory for all hosts where ATMARP
            Servers are present."
        GROUP ipoaLisNotificationsGroup
        DESCRIPTION
            "This group is mandatory for all hosts where
            ATMARP client only support is present and
            ipoaLisTrapEnable is allowed to be set to
            enabled(1)."
        GROUP ipoaLisTableGroup
        DESCRIPTION
            "This group is mandatory for all entities which
            support IP over ATM SVCs.  Support of objects in
            this group by IP over ATM clients which only
            support IP over ATM PVCs is optional."

        OBJECT ipoaLisDefaultMtu
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to allow the user
            to change the default MTU from the value 9180.

            The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisDefaultEncapsType
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to allow the user to
            specify the default encapsulation type for the
            LIS.

            The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisInactivityTimer
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisMinHoldingTime
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisQDepth
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisMaxCalls
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisCacheEntryAge
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisRetries
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to allow the user
            to change the default number of times an ATMARP
            request will be retried when no response is
            received from the default of 2.

            The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisTimeout
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to allow the user
            to change the default retransmission time from
            the default of 10 seconds.

            The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisDefaultPeakCellRate
        MIN-ACCESS  read-only
        DESCRIPTION
            "Implementations that do not support IP over
            ATM SVC usage are not required to allow the
            user to specify a best effort default peak cell
            rate since typically the ipoaLisTable won't
            exist.

            The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisIfMappingRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."

        OBJECT ipoaArpClientAtmAddr
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaArpSrvrLis
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaArpRemoteSrvrAdminStatus
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security.  In this case the value of
            this object should be up(1) when a VC
            exists to the Remote ATMARP Server or
            otherwise down(2), and the agent should not
            allow a SET operation to this object."

        OBJECT ipoaConfigPvcDefaultMtu
        MIN-ACCESS  read-only
        DESCRIPTION
            "The agent is not required to support a SET
            operation to this object in the absence of
            adequate security."

        OBJECT ipoaLisRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "Write access is not required, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."

        OBJECT ipoaArpClientRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "Write access is not required, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."

        OBJECT ipoaArpRemoteSrvrRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "Write access is not required, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."
        OBJECT ipoaArpSrvrRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "Write access is not required, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."

        OBJECT ipoaConfigPvcRowStatus
        SYNTAX   INTEGER {
                           active(1) -- subset of RowStatus
                         }
        MIN-ACCESS read-only
        DESCRIPTION
            "Write access is not required, and only one
            of the six enumerated values for the
            RowStatus textual convention need be
            supported, specifically: active(1)."

        OBJECT ipoaArpClientArpOutNaks
        MIN-ACCESS  not-accessible
        DESCRIPTION
            "Classic IP and ARP over ATM does not require
            an ATMARP client to transmit an ATMARP_NAK
            upon receipt of an ATMARP request from another
            ATMARP client.  This object should be
            implemented when an ATMARP client supports the
            transmission of ATMARP_NAKs."

    ::= { ipoaCompliances 1 }

-- units of conformance

ipoaGeneralGroup OBJECT-GROUP
    OBJECTS {
        ipoaVcType,
        ipoaVcNegotiatedEncapsType,
        ipoaVcNegotiatedMtu,
        ipoaConfigPvcDefaultMtu,
        ipoaConfigPvcRowStatus
    }
    STATUS  current
    DESCRIPTION
        "This group is mandatory for all IP over ATM entities."
    ::= { ipoaGroups 1 }

ipoaClientGroup OBJECT-GROUP
    OBJECTS {
        ipoaArpClientAtmAddr,
        ipoaArpClientSrvrInUse,
        ipoaArpClientInArpInReqs,
        ipoaArpClientInArpOutReqs,
        ipoaArpClientInArpInReplies,
        ipoaArpClientInArpOutReplies,
        ipoaArpClientInArpInvalidInReqs,
        ipoaArpClientInArpInvalidOutReqs,
        ipoaArpClientArpInReqs,
        ipoaArpClientArpOutReqs,
        ipoaArpClientArpInReplies,
        ipoaArpClientArpOutReplies,
        ipoaArpClientArpInNaks,
        ipoaArpClientArpOutNaks,
        ipoaArpClientArpUnknownOps,
        ipoaArpClientArpNoSrvrResps,
        ipoaArpClientRowStatus
      }
    STATUS  current
    DESCRIPTION
        "This group is mandatory for all hosts where an IP
        over ATM client is present."
    ::= { ipoaGroups 2 }

ipoaSrvrGroup OBJECT-GROUP
    OBJECTS {
        ipoaArpSrvrLis,
        ipoaArpSrvrInArpInReqs,
        ipoaArpSrvrInArpOutReqs,
        ipoaArpSrvrInArpInReplies,
        ipoaArpSrvrInArpOutReplies,
        ipoaArpSrvrInArpInvalidInReqs,
        ipoaArpSrvrInArpInvalidOutReqs,
        ipoaArpSrvrArpInReqs,
        ipoaArpSrvrArpOutReplies,
        ipoaArpSrvrArpOutNaks,
        ipoaArpSrvrArpDupIpAddrs,
        ipoaArpSrvrArpUnknownOps,
        ipoaArpSrvrRowStatus
     }
    STATUS  current
    DESCRIPTION
        "This group is mandatory for all hosts where ATMARP
        Servers are present."
    ::= { ipoaGroups 3 }

ipoaBasicNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
          ipoaMtuExceeded
       }
    STATUS        current
    DESCRIPTION
        "The notification which an IP over ATM entity
        is required to implement."
    ::= { ipoaGroups 4 }

ipoaSrvrNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
          ipoaDuplicateIpAddress
       }
    STATUS        current
    DESCRIPTION
            "The notification which an IP over ATM ATMARP
            Server is required to implement."
    ::= { ipoaGroups 5 }

ipoaLisNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
          ipoaLisCreate,
          ipoaLisDelete
       }
    STATUS        current
    DESCRIPTION
            "The LIS-related notifications which are required
            to be implemented by an IP over ATM ATMARP server,
            as well as by any IP over ATM client which allows
            ipoaLisTrapEnable to be set to enabled(1)."
    ::= { ipoaGroups 6 }

ipoaLisTableGroup OBJECT-GROUP
    OBJECTS {
        ipoaLisTrapEnable,
        ipoaLisSubnetAddr,
        ipoaLisDefaultMtu,
        ipoaLisDefaultEncapsType,
        ipoaLisInactivityTimer,
        ipoaLisMinHoldingTime,
        ipoaLisQDepth,
        ipoaLisMaxCalls,
        ipoaLisCacheEntryAge,
        ipoaLisRetries,
        ipoaLisTimeout,
        ipoaLisDefaultPeakCellRate,
        ipoaLisActiveVcs,
        ipoaLisRowStatus,
        ipoaLisIfMappingRowStatus,
        ipoaArpRemoteSrvrRowStatus,
        ipoaArpRemoteSrvrIpAddr,
        ipoaArpRemoteSrvrAdminStatus,
        ipoaArpRemoteSrvrOperStatus
    }
    STATUS  current
    DESCRIPTION
        "This group is mandatory for all entities which
        support IP over ATM SVCs.  Support of objects in
        this group by IP over ATM clients which only
        support IP over ATM PVCs is optional."
    ::= { ipoaGroups 7 }

END
