-- *****************************************************************
-- CISCO-DS0BUNDLE-EXT-MIB
--
-- July 1998, Vasmi Abidi
--
-- Copyright (c) 1998 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- This mib extends CISCO-DS0BUNDLE-MIB




CISCO-DS0BUNDLE-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE      		  FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP               FROM SNMPv2-CONF
    TEXTUAL-CONVENTION				  FROM SNMPv2-TC
    ciscoExperiment                               FROM CISCO-SMI
    InterfaceIndex, ifIndex                       FROM IF-MIB
    dsx0BundleEntry                               FROM CISCO-DS0BUNDLE-MIB;


ciscoDs0BundleExtMIB MODULE-IDENTITY
    LAST-UPDATED "9806300000Z"
    ORGANIZATION "Cisco Systems"
    CONTACT-INFO "
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose CA 95134-1706.
                  Phone: +1 408 526 5260
                  Email: cs-snmp@cisco.com"
    DESCRIPTION
            "The MIB module for managing DS0 Bundles.
	     
            This MIB contains additional objects to supplement the
            the IETF draft ds0Bundle MIB."
    ::= { ciscoExperiment 33 }




ciscoDs0BundleExtMIBObjects  OBJECT IDENTIFIER 
				::= {ciscoDs0BundleExtMIB 1 }

cdsx0BundleConfig  OBJECT IDENTIFIER ::= { ciscoDs0BundleExtMIBObjects 1 } 

cdsx0BundleInfo    OBJECT IDENTIFIER ::= { ciscoDs0BundleExtMIBObjects 2 } 

-- Textual Conventions

Ds0ChannelList ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "A list of ds0 timeslots on a DS1 line.

            The list is specified as an OCTET STRING in which each ds0
            timeslot is represented by a single bit, where  timeslots 1
            through 8 are represented by the bits in the first octet,
            timeslots 9 through 16 by the bits in the second octet,
            etc.  In each octet, the lowest numbered timeslot is
            represented by the most significant bit, and the highest
            numbered timeslot by the least significant bit.  A timeslot
            is present in the list when its bit is set, and absent
            when its bit is reset. 

            If the OCTET STRING value has fewer bits than required to
            represent one or more timeslots on a DS1, then those
            timeslots are absent from the list. If the OCTET STRING
            value has more bits than required to represent the
            timeslots on a DS1, then the extra bits are ignored. "
    SYNTAX       OCTET STRING (SIZE(0..4))

--

          cdsx0BundleExtTable OBJECT-TYPE 
              SYNTAX  SEQUENCE OF Cdsx0BundleExtEntry 
              MAX-ACCESS  not-accessible 
              STATUS  current 
              DESCRIPTION 
                      "This table is used to supplement the 
		       dsx0BundleTable."
              ::= { cdsx0BundleConfig 1 } 
 
          cdsx0BundleExtEntry OBJECT-TYPE 
              SYNTAX  Cdsx0BundleExtEntry 
              MAX-ACCESS  not-accessible 
              STATUS  current 
              DESCRIPTION 
                      "Contains objects to configure a ds0Bundle. 

		      The values of objects cdsx0BundleExtDs1Index and
		      cdsx0BundleExtChannelMap must be specified for
		      the associated row to become active."
              AUGMENTS   { dsx0BundleEntry } 
               ::= { cdsx0BundleExtTable 1 } 
 
          Cdsx0BundleExtEntry ::= 
              SEQUENCE { 
                  cdsx0BundleExtDs1Index     InterfaceIndex, 
                  cdsx0BundleExtChannelMap   Ds0ChannelList, 
                  cdsx0BundleExtEncapType    INTEGER,
                  cdsx0BundleExtChannelRate  INTEGER 
          } 
 
          cdsx0BundleExtDs1Index OBJECT-TYPE 
              SYNTAX  InterfaceIndex 
              MAX-ACCESS  read-write 
              STATUS  current 
              DESCRIPTION 
                      "The ifIndex of the DS1 line containing the ds0 
		       timeslots in this bundle.

		       The ds0 bundle interface is layered on top of
		       the DS1 line. This layering is represented in
		       the ifStackTable.

		       This object is not instantiated until the value
		       is specified.

		       The value may be set only when the ds0 bundle
		       is created."
              ::= { cdsx0BundleExtEntry 1 } 

          cdsx0BundleExtChannelMap OBJECT-TYPE 
              SYNTAX  Ds0ChannelList
              MAX-ACCESS  read-write 
              STATUS  current 
              DESCRIPTION 
                      "A list of ds0 timeslots that comprise this ds0
                       bundle.

		       This object is not instantiated until the value
		       is specified.

	               The value may be set only when the ds0 bundle is
		       created."
              ::= { cdsx0BundleExtEntry 2 } 

          cdsx0BundleExtEncapType OBJECT-TYPE 
              SYNTAX  INTEGER {
				none(1),
			        atmFuni(2),
				frameRelay(3)
	                      } 
              MAX-ACCESS  read-write 
              STATUS  current 
              DESCRIPTION 
                     "The type of encapsulation for this bundle.
		       A ds0 bundle is a logical serial port. 
                       Setting this object defines the type of the serial 
	               port.
		       
		       If not specified, the value is none(1),
		       indicating that the encapsulation type on this
		       serial port is not defined.

                       If the value is changed to atmFuni(2), the
		       agent will create an entry in the ifTable with
		       ifType equal to atmFuni(106).  If the value is
		       changed to frameRelay(3), the agent will create
		       an entry in the ifTable with ifType equal to
		       frameRelayService(44). 
                       
                       The new atmFuni or frameRelayService interface
		       is layered on top of the ds0 bundle interface.
		       This layering will be represented in the
		       ifStackTable.

		       The value of this object can be changed only if
		       the ifOperStatus of the associated atmFuni or
		       frameRelayService interface is down.

                       When the value is changed, the agent removes
		       all existing connections on the interface, and
		       also deletes the ifEntry that was created
		       because of the previous value."
              ::= { cdsx0BundleExtEntry 3 } 
 
          cdsx0BundleExtChannelRate OBJECT-TYPE 
              SYNTAX  INTEGER {
				rate56(1),
			        rate64(2)
	                      } 
              MAX-ACCESS  read-write 
              STATUS  current 
              DESCRIPTION 
                     "The data rate of each ds0 in this bundle. 
			 rate56	 -  56kb/s
			 rate64  -  64kb/s

		      For ds0's on a T1 line, the value should be
		      rate56(1) if 'robbed bit' signaling is used,
		      and rate64(2) if clear channel signaling is
		      used.

		      For ds0's on a E1 line, the value should always
		      be rate64(2).
 
		      The value can be set only when the entry is
                      created."
	      DEFVAL { rate64 }
              ::= { cdsx0BundleExtEntry 4 }

--

          cdsx0BundleUseTable OBJECT-TYPE 
              SYNTAX  SEQUENCE OF Cdsx0BundleUseEntry 
              MAX-ACCESS  not-accessible 
              STATUS  current 
              DESCRIPTION 
                      "Shows the ds0 timeslots that are currently in
		       use (i.e., part of a ds0 bundle) on
		       channelized DS1 lines.
			
		       There is an entry in this table for each
		       channelized DS1 line which has an ifEntry."
              ::= { cdsx0BundleInfo 1 } 
 
          cdsx0BundleUseEntry OBJECT-TYPE 
              SYNTAX  Cdsx0BundleUseEntry 
              MAX-ACCESS  not-accessible 
              STATUS  current 
              DESCRIPTION 
                      "Contains the ds0 timeslots that are currently
		       part of various ds0 bundles on the DS1 line
		       identified by the ifIndex.

		       This information can be useful for an NMS when
		       creating new ds0 bundles on this DS1."
              INDEX   { ifIndex } 
               ::= { cdsx0BundleUseTable 1 } 
 
          Cdsx0BundleUseEntry ::= 
              SEQUENCE { 
                  cdsx0BundleUseDs0Used   Ds0ChannelList
          } 
 
          cdsx0BundleUseDs0Used OBJECT-TYPE 
              SYNTAX  Ds0ChannelList
              MAX-ACCESS  read-only 
              STATUS  current 
              DESCRIPTION 
                      "A list of ds0 timeslots on this DS1 line that
                      are currently in use, i.e., are part of some ds0
                      bundle."
              ::= { cdsx0BundleUseEntry 1 } 


-- Conformance 

ciscoDs0BundleExtMIBConformance OBJECT IDENTIFIER 
	::= { ciscoDs0BundleExtMIB 3 }

ciscoDs0BundleExtMIBCompliances OBJECT IDENTIFIER 
	::= { ciscoDs0BundleExtMIBConformance 1 }

ciscoDs0BundleExtMIBGroups      OBJECT IDENTIFIER 
	::= { ciscoDs0BundleExtMIBConformance 2 }



ciscoDs0BundleExtMIBCompliance MODULE-COMPLIANCE
	STATUS  current 
        DESCRIPTION 
		"The compliance statement for DS0Bundle interfaces." 
        MODULE  -- this module 
        MANDATORY-GROUPS       { ciscoDs0BundleExtConfigGroup,
			         ciscoDs0BundleExtInfoGroup } 
        ::= { ciscoDs0BundleExtMIBCompliances 1 }

-- Units of Conformance

ciscoDs0BundleExtConfigGroup OBJECT-GROUP
	OBJECTS { cdsx0BundleExtDs1Index, 
                  cdsx0BundleExtChannelMap, 
                  cdsx0BundleExtEncapType,
		  cdsx0BundleExtChannelRate } 
              STATUS  current 
              DESCRIPTION 
                      "A collection of objects providing the ability to 
                      configure a ds0 bundle."        
        ::= { ciscoDs0BundleExtMIBGroups 1 }


ciscoDs0BundleExtInfoGroup OBJECT-GROUP
	OBJECTS { cdsx0BundleUseDs0Used }
        STATUS  current 
        DESCRIPTION 
                      "A collection of objects providing information
		       about which ds0 timeslots are in ds0 bundles."
        ::= { ciscoDs0BundleExtMIBGroups 2 }



END

