-- *****************************************************************
-- CLAB-TOPO-MIB.my:
--
-- May 2007 Bo Wu
--
-- Initial Version: Apr 2007: Annex Q.8 from CM-SP-OSSIv3.0-I01-061207
--
-- Copyright (c) 2007-2008 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CLAB-TOPO-MIB DEFINITIONS ::= BEGIN

  IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE
             FROM SNMPv2-SMI -- RFC 2578
    TEXTUAL-CONVENTION,
    RowStatus
             FROM SNMPv2-TC -- RFC 2579
    OBJECT-GROUP,
    MODULE-COMPLIANCE
             FROM SNMPv2-CONF -- RFC 2580
    SnmpAdminString
             FROM SNMP-FRAMEWORK-MIB -- RFC 3411
    InterfaceIndex
             FROM IF-MIB -- RFC 2863
    clabCommonMibs
             FROM CLAB-DEF-MIB;

clabTopoMib MODULE-IDENTITY
     LAST-UPDATED "200612071700Z" -- Dec 7, 2006
     ORGANIZATION "Cable Television Laboratories, Inc."
     CONTACT-INFO
         "
         Postal: Cable Television Laboratories, Inc.
         858 Coal Creek Circle
         Louisville, Colorado 80027-9750
         U.S.A.
         Phone: +1 303-661-9100
         Fax: +1 303-661-9199
         E-mail: mibs@cablelabs.com"
     DESCRIPTION
        "This MIB module contains the management objects for the
        management of fiber nodes in the Cable plant."
     REVISION "200612071700Z" -- Dec 7, 2006
     DESCRIPTION
        "Initial version, published as part of the CableLabs
        OSSIv3.0 specification CM-SP-OSSIv3.0-I01-061207
        Copyright 1999-2006 Cable Television Laboratories, Inc.
        All rights reserved."
     ::= { clabCommonMibs 2 }

-- Textual Conventions

NodeName ::= TEXTUAL-CONVENTION
     STATUS current
     DESCRIPTION
        "This data type is a human readable string that represents
        the name of a fiber node. Internationalization is supported
        by conforming to the SNMP textual convention SnmpAdminString."
     REFERENCE
        "RFC 3411."
     SYNTAX OCTET STRING (SIZE(0..16))

-- Object Definitions
clabTopoMibObjects OBJECT IDENTIFIER ::= { clabTopoMib 1 }

clabTopoFiberNodeCfgTable OBJECT-TYPE
     SYNTAX SEQUENCE OF ClabTopoFiberNodeCfgEntry
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "This object defines the cable HFC plant Fiber Nodes
	    known at a CMTS.
	    This object supports the creation and deletion of multiple
	    instances."
	 ::= { clabTopoMibObjects 1}

clabTopoFiberNodeCfgEntry OBJECT-TYPE
	 SYNTAX ClabTopoFiberNodeCfgEntry
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "The conceptual row of clabTopoFiberNodeCfg.
	    The CMTS persists all instances of FiberNodeCfg
	    across reinitializations."
	 INDEX {
	         clabTopoFiberNodeCfgNodeName
		 }
	 ::= { clabTopoFiberNodeCfgTable 1 }

ClabTopoFiberNodeCfgEntry ::= SEQUENCE {
	 clabTopoFiberNodeCfgNodeName
			  NodeName,
	 clabTopoFiberNodeCfgNodeDescr
			  SnmpAdminString,
	 clabTopoFiberNodeCfgRowStatus
			  RowStatus
	 }

clabTopoFiberNodeCfgNodeName OBJECT-TYPE
	 SYNTAX NodeName (SIZE (1..16))
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "This key represents a human-readable name for a fiber
	    node."
	 REFERENCE
	    "DOCSIS 3.0 MAC and Upper Layer Protocols Interface
	    Specification CM-SP-MULPIv3.0-I01-060804, RF Topology 
	    Configuration section."
	 ::= { clabTopoFiberNodeCfgEntry 1 }

clabTopoFiberNodeCfgNodeDescr OBJECT-TYPE
	 SYNTAX SnmpAdminString
	 MAX-ACCESS read-create
	 STATUS current
	 DESCRIPTION
	    "Administratively configured human-readable description
	    of the fiber node"
	 DEFVAL { ''H }
	 ::= { clabTopoFiberNodeCfgEntry 2 }

clabTopoFiberNodeCfgRowStatus OBJECT-TYPE
	 SYNTAX RowStatus
	 MAX-ACCESS read-create
	 STATUS current
	 DESCRIPTION
	    "The status of this instance."
	 ::= { clabTopoFiberNodeCfgEntry 3 }

clabTopoChFnCfgTable OBJECT-TYPE
	 SYNTAX SEQUENCE OF ClabTopoChFnCfgEntry
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "This object defines the RF topology by defining the
	    connectivity of a CMTS's downstream and upstream channels
	    to the fiber nodes. Each instance of this object
	    describes connectivity of one downstream or upstream
	    channel with a single fiber node.
	    This object supports the creation and deletion of multiple
	    instances."
	 ::= { clabTopoMibObjects 2}

clabTopoChFnCfgEntry OBJECT-TYPE
	 SYNTAX ClabTopoChFnCfgEntry
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "The conceptual row of clabTopoChFnCfg.
	    The CMTS persists all instances of ChFnCfg
	    across reinitializations."
	 INDEX {
	         clabTopoFiberNodeCfgNodeName,
		   clabTopoChFnCfgChIfIndex
	 	 }
	 ::= { clabTopoChFnCfgTable 1 }

ClabTopoChFnCfgEntry ::= SEQUENCE {
	 clabTopoChFnCfgChIfIndex
			  InterfaceIndex,
	 clabTopoChFnCfgRowStatus
			  RowStatus
	 }

clabTopoChFnCfgChIfIndex OBJECT-TYPE
	 SYNTAX InterfaceIndex
	 MAX-ACCESS not-accessible
	 STATUS current
	 DESCRIPTION
	    "This key represents the interface index of an upstream
	    or downstream channel associated with this fiber
	    node. In the upstream direction, only ifIndices
	    docsCableUpstream channels are reflected."
	 ::= { clabTopoChFnCfgEntry 1 }

clabTopoChFnCfgRowStatus OBJECT-TYPE
	 SYNTAX RowStatus
	 MAX-ACCESS read-create
	 STATUS current
	 DESCRIPTION
	    "The status of this instance."
	 ::= { clabTopoChFnCfgEntry 2 }

-- Conformance Definitions
clabTopoMibConformance OBJECT IDENTIFIER ::= { clabTopoMib 2 }
clabTopoMibCompliances OBJECT IDENTIFIER
					  ::= { clabTopoMibConformance 1 }
clabTopoMibGroups 	 OBJECT IDENTIFIER
					  ::= { clabTopoMibConformance 2 }
clabTopoCompliance MODULE-COMPLIANCE
STATUS 	  current
DESCRIPTION
	    "The compliance statement for devices that implement the
	    CableLabs Topology MIB."

MODULE -- this MODULE
MANDATORY-GROUPS {
	 clabTopoGroup
	 }
::= { clabTopoMibCompliances 1 }

clabTopoGroup OBJECT-GROUP
	OBJECTS {
	 clabTopoFiberNodeCfgNodeDescr,
	 clabTopoFiberNodeCfgRowStatus,
	 clabTopoChFnCfgRowStatus
	 }
	STATUS current
	DESCRIPTION
	   "Group of objects implemented in the CMTS."
	::= { clabTopoMibGroups 1 }
END
