-- *****************************************************************
-- CISCO-FABRIC-MCAST-MIB.my: Cisco Fabric Multicast resource MIB file
--
-- July 2001,  Hongchi Shih
--
-- Copyright (c) 2001, 2002 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-FABRIC-MCAST-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Unsigned32,
    Gauge32,
    MODULE-IDENTITY,
    OBJECT-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    entLogicalIndex
        FROM ENTITY-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoFabricMcastMIB MODULE-IDENTITY
    LAST-UPDATED    "200208200000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "       Cisco Systems
                    Customer Service

            Postal: 170 W. Tasman Drive
                    San Jose, CA  95134
                    USA

            Tel: +1 800 553-NETS

            E-mail: cs-fabric@cisco.com"
    DESCRIPTION
        "Fabric Multicast Resource MIB module.
        This MIB module is used for managing/tracking the fabric
        multicast resource related information.

        Acronyms and terms:
        FGID          - Fabric Multicast Group Identifier.
        LR            - Logical router."

    REVISION        "200208200000Z"
    DESCRIPTION
        "Initial version of this MIB module."

    ::= { ciscoMgmt 255 }


--
-- The fabric multicast resource MIB consists of the following groups
-- [1] Fabric multicast resource general information group
-- [2] Fabric multicast pool group
-- [3] Fabric multicast Logical Router group

ciscoFabricMcastMIBNotifs 
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIB 0 }
ciscoFabricMcastMIBObjects 
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIB 1 }
ciscoFabricMcastMIBConform  
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIB 2 }

cfmGeneral      
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIBObjects 1 }
cfmPool           
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIBObjects 2 }
cfmLr           
    OBJECT IDENTIFIER ::= { ciscoFabricMcastMIBObjects 3 }

CfmPoolIndex ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS       current
    DESCRIPTION
        "A unique value, greater than zero, for each fabric
        multicast resource pool in the managed system.  It is
        recommended that values are assigned contiguously
        starting from 1.  The value for each resource pool
        must remain constant at least from one re-initialization
        of the entity's network management system to the next
        re-initialization."
       SYNTAX       Unsigned32 (1..4294967295)

-- Fabric Multicast Resource General Information Group
--

cfmGenInfoTotalFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of FGIDs resource are detected in the
        managed system."
    ::= { cfmGeneral 1 }

cfmGenInfoInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of FGIDs that are currently in use
        by the managed system."
    ::= { cfmGeneral 2 }

cfmGenInfoHighWaterInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The highest number of FGIDs that was in use by
        all fabric multicast client applications in the
        managed system."
    ::= { cfmGeneral 3 }

--
-- Fabric multicast resource pool Table
--

cfmPoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfmPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains fabric multicast resource 
         pool information."
    ::= { cfmPool 1 }

cfmPoolEntry OBJECT-TYPE
    SYNTAX      CfmPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The information regarding a single fabric multicast   
        resource pool.
        An entry of this table is created when a fabric 
        multicast dedicated pool related client application is
        registered to fabric software or the first of fabric 
        multicast shared pool related client application is 
        registered to fabric software.
        An entry of this table is removed when the the last fabric 
        multicast client application is unregistered from the pool." 
    INDEX       { cfmPoolId }
    ::= { cfmPoolTable 1 }


CfmPoolEntry ::=
    SEQUENCE {
        cfmPoolId                       CfmPoolIndex,
        cfmPoolName                     SnmpAdminString,
        cfmPoolType                     INTEGER,
        cfmPoolTotalFgids               Gauge32,
        cfmPoolInuseFgids               Gauge32,
        cfmPoolHighWaterInuseFgids      Gauge32
    }


cfmPoolId    OBJECT-TYPE
    SYNTAX      CfmPoolIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index that uniquely represents a fabric multicast
        resource pool. This index is assigned arbitrarily by
        the fabric software when fabric multicast application
        clients register for the use of fabric multicast resource."
    ::= { cfmPoolEntry 1 }

cfmPoolName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object to indicate FGID pool name."
    ::= { cfmPoolEntry 2 }

cfmPoolType OBJECT-TYPE
    SYNTAX      INTEGER {
        shared(1),
        dedicated(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object to indicate FGID pool type.
        shared(1)    - the pool is shared by multiple types
                       of FGID clients.
        dedicated(2) - the pool is dedicated for a specific type of
                       client to use. The dedicated pool is normally
                       used by a critical client to prevent processes 
                       deadlock during system initialization
                       or restart."
        
    ::= { cfmPoolEntry 3 }

cfmPoolTotalFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of FGIDs in this pool. The total size might
         be dynamically adjusted based on the utilization of each pool
         or if a fabric multicast resource related entity is added
         or removed  (e.g., add a new fabric rack or upgrade an old
         fabric rack to new fabric rack)."
    ::= { cfmPoolEntry 4 }


cfmPoolInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of FGIDs in this pool that are currently
        in use by the FGID clients from one or more logical routers."
    ::= { cfmPoolEntry 5 }

cfmPoolHighWaterInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The highest number of FGIDs in this pool that was in use 
        by the FGID clients from one or more logical routers."
    ::= { cfmPoolEntry 6 }

--
-- Logical router basis fabric multicast resource table
--

cfmLrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfmLrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains fabric multicast resource 
         information for a logical router."
    ::= { cfmLr 1 }

cfmLrEntry OBJECT-TYPE
    SYNTAX      CfmLrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The information regarding a single logical router that
        uses fabric multicast resource.
        An entry of this table is created when a logical router is
        created in the entLogicalTable of ENTITY-MIB and the logical
        router is registered for fabric multicast resource service.
        A logical router is identified by the value of mib-2 in
        entLogicalType object of ENTITY-MIB.
        An entry of this table is removed when the entry associated 
        logical router is removed from entLogicalTable of ENTITY-MIB."
    INDEX       { entLogicalIndex }
    ::= { cfmLrTable 1 }


CfmLrEntry ::=
    SEQUENCE {
        cfmLrInuseFgids               Gauge32,
        cfmLrHighWaterInuseFgids      Gauge32
    }


cfmLrInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of FGIDs that are currently in use
        by this logical router."
    ::= { cfmLrEntry 1 }

cfmLrHighWaterInuseFgids OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "fgid"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The highest number of FGIDs that was in use by this 
        logical router."
    ::= { cfmLrEntry 2 }

--*******************************************************************
-- Notifications
--*******************************************************************



-- compliance statements

cfmMIBCompliances OBJECT IDENTIFIER ::=
                                { ciscoFabricMcastMIBConform 1 }
cfmMIBGroups      OBJECT IDENTIFIER ::=
                                { ciscoFabricMcastMIBConform 2 }

cfmMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-FABRIC-MCAST-MIB"
    MODULE      -- this module
    MANDATORY-GROUPS
        { cfmGenInfoGroup }

    GROUP cfmPoolGroup
    DESCRIPTION
        "This group is mandatory for the systems that support
        fabric multicast resource pools."

    GROUP cfmLrGroup
    DESCRIPTION
        "This group is mandatory for the systems that support
        per logical router/switch basis of fabric multicast 
        resource statistics feature."



    ::= { cfmMIBCompliances 1 }


-- units of conformance


cfmGenInfoGroup OBJECT-GROUP
    OBJECTS {
        cfmGenInfoTotalFgids,
        cfmGenInfoInuseFgids,
        cfmGenInfoHighWaterInuseFgids
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing the general fabric 
        multicast resource related configuration and statistics
        capability."
    ::= { cfmMIBGroups 1 }

cfmPoolGroup OBJECT-GROUP
    OBJECTS {
        cfmPoolName,
        cfmPoolType,
        cfmPoolTotalFgids,
        cfmPoolInuseFgids,
        cfmPoolHighWaterInuseFgids
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing information for
        the fabric multicast resource pools."
    ::= { cfmMIBGroups 2 }

cfmLrGroup OBJECT-GROUP
    OBJECTS {
        cfmLrInuseFgids,
        cfmLrHighWaterInuseFgids
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing information for
        the logical routers that use the fabric multicast resource."
    ::= { cfmMIBGroups 3 }

END
