--------------------------------------------------------------------
-- ATM Address Registration MIB
--
-- March, 1995; Kartik Chandrasekhar
--
-- Copyright (c) 1995-1997 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--



ATM-FORUM-ADDR-REG  DEFINITIONS ::=  BEGIN

IMPORTS
        atmfNetPrefixGroup,
        atmfAddressGroup,
        atmfAddressRegistrationAdminGroup,
        AtmAddress,
        NetPrefix                       FROM ATM-FORUM-TC-MIB
        OBJECT-TYPE                     FROM RFC-1212;



--                  The NetPrefix Group
--
-- The Network Prefix Table is implemented by the user-side IME.

atmfNetPrefixTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AtmfNetPrefixEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A table implemented by the user-side IME, containing the
                network-prefix(es) for ATM-layer addresses in effect on
                the user side of the UNI."
        ::= { atmfNetPrefixGroup 1 }

atmfNetPrefixEntry OBJECT-TYPE
        SYNTAX  AtmfNetPrefixEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Information about a single network-prefix for
                ATM-layer addresses in effect on the user-side IME.
                Note that the index variable atmNetPrefixPrefix is a
                variable-length string, and as such the rule for
                variable-length strings in section 4.1.6 of RFC 1212
                applies."

        INDEX   { atmfNetPrefixPort, atmfNetPrefixPrefix }
        ::= { atmfNetPrefixTable 1 }

AtmfNetPrefixEntry ::=
        SEQUENCE {
                atmfNetPrefixPort
                        INTEGER,
                atmfNetPrefixPrefix
                        NetPrefix,
                atmfNetPrefixStatus
                        INTEGER
        }

atmfNetPrefixPort OBJECT-TYPE
        SYNTAX  INTEGER (0..2147483647)
	ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "A unique value which identifies the UNI port for
                which the network prefix for ATM addresses is in
                effect.  The value of 0 has the special meaning of
                identifying the local UNI."
        ::= { atmfNetPrefixEntry 1 }

atmfNetPrefixPrefix  OBJECT-TYPE
        SYNTAX  NetPrefix
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The network prefix for ATM addresses which is in
                effect on the user side of the ATM UNI port."
        ::= { atmfNetPrefixEntry 2 }

atmfNetPrefixStatus  OBJECT-TYPE
        SYNTAX  INTEGER { valid(1), invalid(2) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "An indication of the validity of the network prefix
                for ATM addresses on the user side of the UNI port.
                To configure a new network prefix in this table, the
                network-side IME must set the appropriate instance of this
                object to the value valid(1).  To delete an existing
                network prefix in this table, the network-side IME must
                set the appropriate instance of this object to the
                value invalid(2).

                If circumstances occur on the user-side IME which cause a
                prefix to become invalid, the user-side IME modifies the
                value of the appropriate instance of this object to invalid(2).

                Whenever the value of this object for a particular
                prefix becomes invalid(2), the conceptual row for that
                prefix may be removed from the table at any time,
                either immediately or subsequently."
        ::= { atmfNetPrefixEntry 3 }


--                     The Address Group
--
-- The Address Table is implemented by the network-side IME.

atmfAddressTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AtmfAddressEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A table implemented by the network-side IME, containing the
                ATM-layer addresses in effect on the user side of the UNI."
        ::= { atmfAddressGroup 1 }

atmfAddressEntry OBJECT-TYPE
        SYNTAX  AtmfAddressEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Information about a single ATM-layer address in effect
                on the user-side IME.  Note that the index variable
                atmAddressAtmAddress is a variable-length string, and as
                such the rule for variable-length strings in section
                4.1.6 of RFC 1212 applies."
        INDEX   { atmfAddressPort, atmfAddressAtmAddress }
        ::= { atmfAddressTable 1 }

AtmfAddressEntry ::=
        SEQUENCE {
                atmfAddressPort
                        INTEGER,
                atmfAddressAtmAddress
                        AtmAddress,
                atmfAddressStatus
                        INTEGER,
                atmfAddressOrgScope
                        INTEGER
        }

atmfAddressPort OBJECT-TYPE
        SYNTAX  INTEGER (0..2147483647)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "A unique value which identifies the UNI port for
                which the ATM address is in effect.  The value of 0
                has the special meaning of identifying the local UNI."
        ::= { atmfAddressEntry 1 }

atmfAddressAtmAddress  OBJECT-TYPE
        SYNTAX  AtmAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The ATM address which is in effect on the user side
                of the ATM UNI port."
        ::= { atmfAddressEntry 2 }

atmfAddressStatus  OBJECT-TYPE
        SYNTAX  INTEGER { valid(1), invalid(2) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "An indication of the validity of the ATM address at
                the user side of the UNI port.  To configure a new
                address in this table, the user-side IME must set the
                appropriate instance of this object to the value
                valid(1).  To delete an existing address in this table,
                the user-side IME must set the appropriate instance of
                this object to the value invalid(2).

                If circumstances occur on the network-side IME which cause
                an address to become invalid, the network-side IME
                modifies the value of the appropriate instance of this
                object to invalid(2).

                Whenever the value of this object for a particular
                address becomes invalid(2), the conceptual row for
                that address may be removed from the table at any
                time, either immediately or subsequently."
        ::= { atmfAddressEntry 3 }

atmfAddressOrgScope OBJECT-TYPE
        SYNTAX  INTEGER {
                localNetwork(1),
                localNetworkPlusOne(2),
                localNetworkPlusTwo(3),
                siteMinusOne(4),
                intraSite(5), 
                sitePlusOne(6),
                organizationMinusOne(7),
                intraOrganization(8),
                organizationPlusOne(9),
                communityMinusOne(10),
                intraCommunity(11),
                communityPlusOne(12),
                regional(13),
                interRegional(14),
                global(15)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION 
                "This object indicates the organizational
                scope for the referenced address. The information of
                the referenced address shall not be distributed
                outside the indicated scope. If the user-side IME does
                not specify a value for the atmfAddressOrgScope object,
                the network shall set the value of this object to
                localNetwork(1), if the registered address is an ATM group
                address, or to global(15), if the registered address is 
                an individual address.  Refer to Annex 6.0
                of ATM Forum UNI Signalling 4.0 for guidelines regarding
                the use of organizational scopes.

                This organization hierarchy may be mapped to ATM network's
                routing hierarchy such as PNNI's routing level and
                the mapping shall be configurable in
                nodes. Use of this object in a public network is for
                further study.
                The default values for organizational scope are
                localNetwork(1) for ATM group addresses, and global(15)
                for individual addresses."
        ::= { atmfAddressEntry 4 }


--                     The Address Registration Admin Group
--
-- The Address Registration Admin Table is mandatory for all IMEs.

atmfAddressRegistrationAdminTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AtmfAddressRegistrationAdminEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A table of Address Registration administrative
                information for the ATM Interface."
    ::= { atmfAddressRegistrationAdminGroup 1 }

atmfAddressRegistrationAdminEntry OBJECT-TYPE
        SYNTAX  AtmfAddressRegistrationAdminEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the table, containing Address
                Registration administrative information for the ATM
                Interface."
        INDEX   { atmfAddressRegistrationAdminIndex }
        ::= { atmfAddressRegistrationAdminTable 1 }


AtmfAddressRegistrationAdminEntry ::=
        SEQUENCE {
                atmfAddressRegistrationAdminIndex
                        INTEGER,
                atmfAddressRegistrationAdminStatus
                        INTEGER
        }

atmfAddressRegistrationAdminIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..2147483647)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The value of 0 which has the special meaning of
                identifying the ATM Interface over which this message
                was received."
        ::= { atmfAddressRegistrationAdminEntry 1 }

atmfAddressRegistrationAdminStatus OBJECT-TYPE
        SYNTAX  INTEGER { supported(1), unsupported(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "An indication of whether or not Address Registration
                is supported on this ATM Interface. Supported(1)
                indicates that this ATM Interface supports address
                registration. Unsupported(2) indicates that this ATM
                Interface does not support address registration."
        ::= { atmfAddressRegistrationAdminEntry 2 }
END
