-- *****************************************************************
-- CISCO-WAN-ATM-CUG-MIB.my:  CISCO-WAN-ATM-CUG MIB file
--
-- January, 2002 Michael Sung
--
-- Copyright (c) 2002 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- *****************************************************************
-- $Endlog$
--
CISCO-WAN-ATM-CUG-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,    
    OBJECT-TYPE, Integer32 FROM SNMPv2-SMI

    AtmAddr                FROM ATM-TC-MIB

    TEXTUAL-CONVENTION,
    RowStatus              FROM SNMPv2-TC

    ciscoMgmt              FROM CISCO-SMI

    MODULE-COMPLIANCE,  
    OBJECT-GROUP           FROM SNMPv2-CONF;

ciscoWanAtmCugMIB   MODULE-IDENTITY
    LAST-UPDATED    "200203220000Z"
    ORGANIZATION    "Cisco System Inc."
    CONTACT-INFO
        "           Cisco Systems
                    Customer Service

                    Postal: 170 West Tasman Drive,
                            San Jose CA 95134-1706.
                            USA

                    Tel: +1 800 553-NETS

                    E-mail: cs-wanatm@cisco.com"
    DESCRIPTION
         "This MIB module is intended for the management of  
         'Closed User Group(CUG)' in Cisco ATM switches.  

         This MIB definition is based upon 'Closed User Group'
         recommended by International Telecommunication Union(ITU). 

         The CUG supplementary service enables users to form groups,
         to and from which access is restricted. A specific user may
         be member of one or more closed user groups. Members of a
         specific closed user group can communicate among themselves
         but not, in general, with users outside the group. Specific    
         CUG members can have additional capabilities that allow 
         them to originate calls to destinations outside the group,
         and/or to receive calls from outside the group. Specific
         CUG members can have additional restrictions that prevent
         them from originating calls to other members of the CUG,
         or from receiving calls from other members of the CUG.

         ITU-T Q.2955.1 Stage 3 description for community of interest
         supplementary services using B-ISDN Digital Subscriber
         Signalling System No.2(DSS 2): Closed User Group(CUG)."  
    REVISION        "200203220000Z"
    DESCRIPTION     "Initial version of the MIB."

    ::= { ciscoMgmt 99999 }

-- CISCO-WAN-ATM-CUG-MIB MIB groups
cwaCugMIBNotifications
    OBJECT IDENTIFIER ::= { ciscoWanAtmCugMIB 0 }
cwaCugMIBObjects 
    OBJECT IDENTIFIER ::= { ciscoWanAtmCugMIB 1 } 

cwaCug          
    OBJECT IDENTIFIER ::= { cwaCugMIBObjects 1 }

cwaAddressCug                    
    OBJECT IDENTIFIER ::= { cwaCugMIBObjects 2 }   

-- textual conventions

CiscoAtmAddressType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
         "The type of an ATM Address. 

         The value e164(3) indicates the address format 
         is that of ITU-T defined address format.

	 The value nsap(8) indicates the address format 
         is that of ATM private network address or ATM 
         end-point identifiers.

         The CiscoAtmAddressType textual convention SHOULD
         NOT be subtyped in object type definitions to support
         future extensions. It MAY be subtyped in compliance 
         statements in order to require only a subset of 
         these address types for a compliant implementation.

         Note that the enumerated values of this TC are
         aligned with AddressFamilyNumbers from 
         IANA-ADDRESS-FAMILY-NUMBERS-MIB."
    SYNTAX  INTEGER { e164(3), 
                      nsap(8)
            }

CiscoAtmAddressLength ::= TEXTUAL-CONVENTION
    STATUS          current          
    DESCRIPTION
         "The length (in bits) of an ATM Address."
    SYNTAX  Integer32(0..160)

CiscoAtmInterlockCode ::= TEXTUAL-CONVENTION 
    STATUS     current
    DESCRIPTION
         "A Closed User Group(CUG) Interlock Code. Each
         'Interlock Code' uniquely identifies a Closed
         User Group in the network. This is a
         'PNNI Interlock Code', it contains a 20-octet
         ATM End Station Address(AESA) and a 4-octet Suffix.
         "
    REFERENCE
         "ATM Forum, Closed User Group, Section 3"
    SYNTAX     OCTET STRING(SIZE(24))

-- table of objects representing CUG lists for each address 

cwaCugTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CwaCugEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "This table contains a sequence of CUGs for each
         ATM address." 
    ::= { cwaCug 1 }

cwaCugEntry OBJECT-TYPE
    SYNTAX     CwaCugEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "The entry represents one CUG for an ATM address."
    INDEX { cwaAtmAddress, cwaAddressLength,
            cwaCugIndex }
    ::= { cwaCugTable 1 }

CwaCugEntry ::=
    SEQUENCE {
        cwaAtmAddress        AtmAddr,
        cwaAddressLength     CiscoAtmAddressLength,
        cwaCugIndex          Integer32, 
        cwaAddressPlan       CiscoAtmAddressType,  
        cwaInterlockCode     CiscoAtmInterlockCode,
        cwaCallsBarred       INTEGER,
        cwaCugRowStatus      RowStatus
    }

cwaAtmAddress OBJECT-TYPE
    SYNTAX     AtmAddr 
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "A provisioned ATM address on the managed system."
    ::= { cwaCugEntry 1 }

cwaAddressLength OBJECT-TYPE
    SYNTAX     CiscoAtmAddressLength
    MAX-ACCESS not-accessible 
    STATUS     current
    DESCRIPTION
         "This is the length (in bits) of the 'cwtAtmAddress'. 
         " 
    ::= { cwaCugEntry 2 }

cwaCugIndex OBJECT-TYPE
    SYNTAX     Integer32(1..65535) 
    MAX-ACCESS not-accessible 
    STATUS     current
    DESCRIPTION
         "The CUG index is a parameter used by the calling
         user to select a particular CUG when originating
         a call. The index is also used by the network to
         indicate to the called user the CUG from which 
         an incoming call has originated. This index has
         only local significance.

         Each 'cwaCugIndex' assigned to an ATM address must be
         unique for this ATM address. For each 'cwaCugIndex'
         must have one corresponding cwaInterLockCode
         assigned." 
    REFERENCE
         "ITU-T Specification Q.2955.1 section 1.3.3"
    ::= { cwaCugEntry 3 }

cwaAddressPlan OBJECT-TYPE
    SYNTAX     CiscoAtmAddressType
    MAX-ACCESS read-create 
    STATUS     current
    DESCRIPTION
         "This is the type of the ATM address associated
         with this entry."
    ::= { cwaCugEntry 4 }

cwaInterlockCode OBJECT-TYPE
    SYNTAX     CiscoAtmInterlockCode 
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
         "This is the 'Closed User Group(CUG) Interlock Code'
         associated with this entry."
    REFERENCE
         "ATM Forum, Closed User Group, Section 3"
    ::= { cwaCugEntry 5 }

cwaCallsBarred OBJECT-TYPE
    SYNTAX     INTEGER { none(1),
                         incoming(2),
                         outgoing(3)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
         "This variable indicates if this member can receive calls 
         from or make calls to other members of the same CUG.

         When this variable is set to none(1), it means this
         CUG member can receive calls from and make calls to 
         other members in the same CUG.

         When this variable is set to incoming(2), it means this
         member cannot receive incoming calls from other members
         in the same CUG.

         When this variable is set to outgoing(3), it means this
         member cannot make calls to other members in the same CUG.
         "
    REFERENCE
         "ITU-T Specification Q.2955.1 Sections 1.3.9 and 1.3.13"
    DEFVAL { none }
    ::= { cwaCugEntry 6 }

cwaCugRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
         "The row status of each entry in this table.
         
         Once the 'cwaInterlockCode' is created, it cannot be
         modified. If the management station wants to
         assign a different Interlock Code to the same
         'cwaCugIndex', the management station must remove
         the current entry and then add a new entry with
         the same 'cwaCugIndex' and a different 'cwaInterlockCode." 
    ::= { cwaCugEntry 7 }


-- A table representing the CUG parameters of an ATM address
 
cwaAddressCugTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CwaAddressCugEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "A table of CUG parameters associated with
         each provisioned ATM address."
    REFERENCE
         "ITU-T Specification Q.2955.1 Section 1.3" 
    ::= { cwaAddressCug 1 }

cwaAddressCugEntry OBJECT-TYPE
    SYNTAX     CwaAddressCugEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "The managed system will automatically create
         an entry in this table when the first CUG 
         is created for the same ATM address in  
         'cwaCugTable'.

         A entry in this table is automatically 
         destroyed by the managed system when all 
         CUGs of the same ATM address are destroyed
	 in the 'cwaCugTable'."
    INDEX { cwaAtmAddress, cwaAddressLength }
    ::= { cwaAddressCugTable 1 }

CwaAddressCugEntry ::=
    SEQUENCE {
        cwaCugAtmAddressPlan CiscoAtmAddressType, 
        cwaIncomingAccess    INTEGER,        
        cwaOutgoingAccess    INTEGER,
        cwaPreferentialCug   Integer32
    }

cwaCugAtmAddressPlan OBJECT-TYPE
    SYNTAX     CiscoAtmAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
         "This is the type of the ATM address associated
         with this entry."
    ::= { cwaAddressCugEntry 1 }

cwaIncomingAccess OBJECT-TYPE
    SYNTAX     INTEGER { notAllowed(1),
			 allowed(2)
               } 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
         "This variable decides whether 'incoming access' 
         is allowed for a CUG user.
         
         the 'incoming access' allows a CUG user to receive 
         calls from all other non-CUG users and also from those
         other CUG user that allow 'outgoing access'.

         When the value is set to notAllowed(1), the  
         'incoming access' is not allowed. 

         When the value is set to allowed(2), the 'incoming  
         access' is allowed.

         When this entry is created, this variable has a 
         value of notAllowed(1)."
    REFERENCE
         "ITU-T Specification Q.2955.1 section 1.3.8"
    ::= { cwaAddressCugEntry 2 }

cwaOutgoingAccess OBJECT-TYPE
    SYNTAX     INTEGER { notAllowed(1),
                         allowedPerCall(2),
                         allowedPermanently(3)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
         "This variable decides whether 'outgoing access' 
         is allowed for a CUG user. 

         The 'outgoing access' allows a member of a CUG to make  
         calls to other non-CUG members and also to those
         other CUG members that allow 'incoming access'.

         When the value is set to notAllowed(1), the 'outgoinging 
         access' is not allowed. 
          
         When the value is set to allowedPerCall(2), the 
         'outgoing access' is granted on a per call basis. This
         means for each call, the 'outgoing access' request must
         be part of the call SETUP message. 

         When the value is set to allowedPermanently(3),  
         the 'outgoing access' is allowed for all calls. 
         When this entry is created by the managed 
         system, this variable has a value of notAllowed(1)."
    REFERENCE
         "ITU-T Specification Q.2955.1 section 1.3.9"
    ::= { cwaAddressCugEntry 3 }


cwaPreferentialCug OBJECT-TYPE
    SYNTAX     Integer32(0..65535) 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
         "The CUG index of the 'preferential CUG' for this address.
         There can be only one 'preferential CUG' for an address.
         
         A CUG user subscribing to 'preferential CUG' nominates a
         CUG index which the network uses as a default to identify
         the required CUG in the absence of any CUG information
         in the outgoing call request. 

         A value of zero means the address does not have a 
         preferential CUG. The value of this variable must 
         correspond to a 'cwaCugIndex' of an entry in the  
         'cwaCugTable'. When an entry is created by the managed 
         system, this variable has a value of 0. 

         When selecting a 'preferential' CUG in the address's CUGs,
         the corresponding CUG must allow outgoing calls.  
         This means 'cwaCallsBarred'(Outgoing Calls Barred) 
	 must not have a value of outgoing(2) for the corresponding
	 CUG."   
    REFERENCE
         "ITU-T Specification Q.2955.1 section 1.3.14"
    ::= { cwaAddressCugEntry 4 }

-- Notification

-- There are no notifications defined for this module.

-- conformance information
ciscoWanAtmCugMIBConformance OBJECT IDENTIFIER 
    ::= { ciscoWanAtmCugMIB 3}
ciscoWanAtmCugMIBCompliances OBJECT IDENTIFIER 
    ::= { ciscoWanAtmCugMIBConformance 1 }
ciscoWanAtmCugMIBGroups      OBJECT IDENTIFIER 
    ::= { ciscoWanAtmCugMIBConformance 2 }

-- compliance statements

ciscoWanAtmCugMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
         "The compliance statement for SNMPv2 entities which
         implement Closed User Groups(CUG)."
    MODULE  -- this module
    MANDATORY-GROUPS { ciscoWanAtmCugGroup,
                       ciscoWanAtmAddressCugGroup
    }
    ::= { ciscoWanAtmCugMIBCompliances 1 }

-- units of conformance

ciscoWanAtmCugGroup OBJECT-GROUP
    OBJECTS { cwaAddressPlan,
              cwaInterlockCode,
              cwaCallsBarred,
              cwaCugRowStatus         
    }
    STATUS  current
    DESCRIPTION
         "This group contains the CUGs for each ATM
         address on the managed system." 
    ::= { ciscoWanAtmCugMIBGroups 1 }

ciscoWanAtmAddressCugGroup OBJECT-GROUP
    OBJECTS { cwaCugAtmAddressPlan,
              cwaIncomingAccess,
              cwaOutgoingAccess,
              cwaPreferentialCug
    }
    STATUS  current
    DESCRIPTION
         "This group contains objects for the CUG for each 
         ATM address on the managed system."
    ::= { ciscoWanAtmCugMIBGroups 2 }

END

