--  ******************************************************
--  $Id: zesr.mib 2008-03$
--
--  zesr.mib: ZXR10 Access List MIB file
--  
--  Mar. 2008, Jiao Lin
--   
--  Copyright(c) 2008 by ZTE Corporaton
--  All rights reservered
--  ******************************************************

ZESR-MIB DEFINITIONS ::= BEGIN

IMPORTS
   OBJECT-TYPE,
   Integer32 
   		FROM SNMPv2-SMI
   
   DisplayString,
   RowStatus  
   		FROM SNMPv2-TC 
     		
   zxr10switch
        FROM ZXR10-SMI;     
   		
   zesr                   OBJECT IDENTIFIER ::= { zxr10switch 12}    
   zesrGeneralConfig      OBJECT IDENTIFIER ::= {zesr 1}  

	----------------------------------------------------------------
    -- 1.The nodes of zesr general para     
    ----------------------------------------------------------------
    restartTime         OBJECT-TYPE
        SYNTAX          Integer32( 30..600 )
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " The restartTime of zesr, its default value is 120s."      
    ::= { zesrGeneralConfig 1 }
    
    protocolMac  OBJECT-TYPE 
    	SYNTAX      INTEGER{
                      normal(0),
                      special(1)
                    }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " The mac address mode of zesr, its default value is normal(0)."      
    ::= { zesrGeneralConfig 2 }    
     
    clearSwitchTimes  OBJECT-TYPE 
    	SYNTAX      INTEGER{
                      reset(1)
                    }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " Clear switch-times of major ring and all level ring."      
    ::= { zesrGeneralConfig 3 }     
   
    --------------------------------------------------------------------------------
	-- 2.The table of domain info     
	-------------------------------------------------------------------------------  
	zesrDomainTable        OBJECT-TYPE
        SYNTAX         SEQUENCE OF ZesrDomainEntry 
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "A table that contains ZESR domain info."
    ::= { zesr 2 }  
         
    zesrDomainEntry         OBJECT-TYPE
        SYNTAX          ZesrDomainEntry 
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A list of  entries of ZESR domain information."
        INDEX  { ctrlVlanID }
    ::= { zesrDomainTable 1 }

    ZesrDomainEntry ::= SEQUENCE {
        ctrlVlanID                     Integer32,
        protectInstanceID              Integer32,
        zesrDomainRowStatus            RowStatus,
        zesrDomainclearSwitchTimes     INTEGER        
        }
     
    ctrlVlanID        OBJECT-TYPE
        SYNTAX         Integer32(1..4094)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "The control vlan id of a ZESR domain."
    ::= { zesrDomainEntry 1} 
    
    protectInstanceID          OBJECT-TYPE
        SYNTAX         Integer32(0..16)       
        MAX-ACCESS     read-create        
        STATUS         current
        DESCRIPTION
            "The protect instance id of a ZESR domain."
    ::= { zesrDomainEntry 2}     
    
    zesrDomainRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The RowStatus of this row instance.It could be used for creating,
            modify or remove instance.createAndGo(4) is to create a new row, destroy(6) is 
            to remove current row."
    ::= { zesrDomainEntry 3 }    
    
    zesrDomainclearSwitchTimes   OBJECT-TYPE 
    	SYNTAX      INTEGER{
                      reset(1)
                    }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " Clear switch-times of the domain."      
    ::= { zesrDomainEntry 4 }          
    
    
    ---------------------------------------------------------------------------------------
	--3.the ZESR main ring table        
	--------------------------------------------------------------------------------------- 
    zesrMajorTable       OBJECT-TYPE
        SYNTAX           SEQUENCE OF ZesrMajorEntry
        MAX-ACCESS       not-accessible
        STATUS           current
        DESCRIPTION
            "The configure of ZESR major ring."
    ::= { zesr 3 }
 
    zesrMajorEntry      OBJECT-TYPE
        SYNTAX          ZesrMajorEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The configure of ZESR major ring."
        INDEX  { ctrlVlanID }
    ::= { zesrMajorTable 1 }

    ZesrMajorEntry      ::= SEQUENCE { 
        majorRole                INTEGER,
        majorFirstPort           DisplayString,
        majorSecondPort          DisplayString,  
        majorPreforwardTime      Integer32,
        majorPreupTime           Integer32,
        majorHelloTime           Integer32,
        majorFailTime            Integer32,
        majorState               INTEGER,
        majorFirstPortState      INTEGER,
        majorSecondPortState     INTEGER,
        majorSwitchTimes         INTEGER,
        zesrMajorRowStatus       RowStatus,
        zesrMajorclearSwitchTimes  INTEGER                
        } 
         
     majorRole 	OBJECT-TYPE
        SYNTAX 		    INTEGER{
                            master(0),
                          	transit(1),
                          	zess-master(2),
                          	zess-transit(3) 
                        }       
        MAX-ACCESS 	    read-write
        STATUS          current
        DESCRIPTION
            "The role of a major in a domain, 0--master, 1--transit,2--zess-master,3--zess-transit."
    ::= { zesrMajorEntry 1 }
    
     majorFirstPort     OBJECT-TYPE
        SYNTAX 		    DisplayString(SIZE(1..32))
        MAX-ACCESS 	    read-create
        STATUS          current
        DESCRIPTION
            "The first port name of the major . "
    ::= { zesrMajorEntry 2 }
        
    majorSecondPort     OBJECT-TYPE
        SYNTAX 		    DisplayString(SIZE(1..32))
        MAX-ACCESS 	    read-create
        STATUS          current
        DESCRIPTION
            "The secondary port name of the major . "
    ::= { zesrMajorEntry 3 }
                    
    majorPreforwardTime  OBJECT-TYPE
        SYNTAX           Integer32(1..600)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The preforward time of a major, its default value is 10s. "
    ::= { zesrMajorEntry 4 }

    majorPreupTime       OBJECT-TYPE
        SYNTAX           Integer32(0..500)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The preup time of a major, it's default value is 2s, 
            and the preup time must be less than preforward time at lest 1s. "
    ::= { zesrMajorEntry 5 } 
        
    majorHelloTime       OBJECT-TYPE
        SYNTAX           Integer32(1..6)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The hello time of a major, its default value is 1s. "
    ::= { zesrMajorEntry 6 }    
        
    majorFailTime        OBJECT-TYPE
        SYNTAX           Integer32(3..18)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The fail time of a major, its default value is 3s,
             and the fail time must be 3times of the hello time."
    ::= { zesrMajorEntry 7 }
   
    majorState           OBJECT-TYPE
        SYNTAX           INTEGER{
                           init(0),
                           up(1),
                           down(2),
                           preup(3),
                           start(4),
                           unknown(5)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a major."
    ::= { zesrMajorEntry 8 }         
    
    majorFirstPortState  OBJECT-TYPE
        SYNTAX           INTEGER{
                            unknown(0),
                            block(1),
                            forward(2)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a major first port state."
    ::= { zesrMajorEntry 9 }
     
    majorSecondPortState OBJECT-TYPE
        SYNTAX           INTEGER{
                            unknown(0),
                            block(1),
                            forward(2)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a major secondary port state."
    ::= { zesrMajorEntry 10 }   
    
    majorSwitchTimes     OBJECT-TYPE
        SYNTAX           INTEGER
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The switch times of a major."
    ::= { zesrMajorEntry 11 }
    
    zesrMajorRowStatus  OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The RowStatus of this row instance.It could be used for creating,
            modify or remove instance.createAndGo(4) is to create a new row, destroy(6) is 
            to remove current row."
    ::= { zesrMajorEntry 12 }   
    
    zesrMajorclearSwitchTimes  OBJECT-TYPE 
    	SYNTAX      INTEGER{
                      reset(1)
                    }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " Clear switch-times of a major ring."      
    ::= { zesrMajorEntry 13 }     
    
    ---------------------------------------------------------------------------------------
	--4.the ZESR level ring table        
	--------------------------------------------------------------------------------------- 
    zesrLevelTable       OBJECT-TYPE
        SYNTAX           SEQUENCE OF ZesrLevelEntry
        MAX-ACCESS       not-accessible
        STATUS           current
        DESCRIPTION
            "The configure of ZESR level ring."
    ::= { zesr 4 }
 
    zesrLevelEntry      OBJECT-TYPE
        SYNTAX          ZesrLevelEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The configure of ZESR major ring."
        INDEX  { ctrlVlanID, 
                 levelID, 
                 levelSegID }
    ::= { zesrLevelTable 1 }

    ZesrLevelEntry      ::= SEQUENCE {
        levelID                  Integer32,
        levelSegID               Integer32, 
        levelRole                INTEGER,
        levelFirstPort           DisplayString,
        levelSecondPort          DisplayString,  
        levelPreforwardTime      Integer32,
        levelPreupTime           Integer32,
        levelHelloTime           Integer32,
        levelFailTime            Integer32,
        levelState               INTEGER,
        levelFirstPortState      INTEGER,
        levelSecondPortState     INTEGER,
        levelSwitchTimes         INTEGER,
        zesrLevelRowStatus       RowStatus,
        zesrLevelclearSwitchTimes   INTEGER        
        } 
     
    levelID    	OBJECT-TYPE
        SYNTAX 		    Integer32(1..2)
        MAX-ACCESS 	    read-only
        STATUS          current
        DESCRIPTION
            "The level id of a level ring, its rang is 1-2."
    ::= { zesrLevelEntry 1 } 
    
    levelSegID    	OBJECT-TYPE
        SYNTAX 		    Integer32(1..4)
        MAX-ACCESS 	    read-only
        STATUS          current
        DESCRIPTION
            "The seg id of a level ring, its rang is 1-4."
    ::= { zesrLevelEntry 2 }
        
    levelRole 	       OBJECT-TYPE
        SYNTAX 		   INTEGER{
                            master(0),
                          	transit(1),
                          	edge-assistant(2),
                          	edge-control(3) 
                        }       
        MAX-ACCESS 	    read-write
        STATUS          current
        DESCRIPTION
            "The role of a level in a domain, 0--master, 1--transit, 2--edge-assistant, 3--edge-control."
    ::= { zesrLevelEntry 3 }
    
    levelFirstPort      OBJECT-TYPE
        SYNTAX 		    DisplayString(SIZE(1..32))
        MAX-ACCESS 	    read-create
        STATUS          current
        DESCRIPTION
            "The first port name of the level."
    ::= { zesrLevelEntry 4 }
        
    levelSecondPort     OBJECT-TYPE
        SYNTAX 		    DisplayString(SIZE(1..32))
        MAX-ACCESS 	    read-create
        STATUS          current
        DESCRIPTION
            "The secondary port name of the level, 
            and if the level role is edge-assistant or edge-control, this port can not be configed. "
    ::= { zesrLevelEntry 5 }
                    
    levelPreforwardTime  OBJECT-TYPE
        SYNTAX           Integer32(1..600)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The preforward time of a level, it's default value is 10s. "
    ::= { zesrLevelEntry 6 }

    levelPreupTime       OBJECT-TYPE
        SYNTAX           Integer32(0..500)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The preup time of a level, its default value is 2s, 
            and the preup time must be less than preforward time at lest 1s. "
    ::= { zesrLevelEntry 7 } 
        
    levelHelloTime       OBJECT-TYPE
        SYNTAX           Integer32(1..6)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The hello time of a level, its default value is 1s. "
    ::= { zesrLevelEntry 8 }    
        
    levelFailTime        OBJECT-TYPE
        SYNTAX           Integer32(3..18)
        MAX-ACCESS       read-create
        STATUS           current
        DESCRIPTION
            "The fail time of a level, its default value is 3s,
             and the fail time must be 3times of the hello time."
    ::= { zesrLevelEntry 9 }
   
    levelState           OBJECT-TYPE
        SYNTAX           INTEGER{
                            init(0),
                            up(1),
                            down(2),
                            preup(3),
                            start(4),
                            unknown(5)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a level."
    ::= { zesrLevelEntry 10 }         
    
    levelFirstPortState  OBJECT-TYPE
        SYNTAX           INTEGER{
                            unknown(0),
                            block(1),
                            forward(2)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a level first port state."
    ::= { zesrLevelEntry 11 }
     
    levelSecondPortState OBJECT-TYPE
        SYNTAX           INTEGER{
                            unknown(0),
                            block(1),
                            forward(2)
                         }
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The state of a level secondary port state."
    ::= { zesrLevelEntry 12 }   
    
    levelSwitchTimes     OBJECT-TYPE
        SYNTAX           INTEGER
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "The switch times of a level."
    ::= { zesrLevelEntry 13 }
    
    zesrLevelRowStatus  OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The RowStatus of this row instance.It could be used for creating,
            modify or remove instance.createAndGo(4) is to create a new row, destroy(6) is 
            to remove current row."
    ::= { zesrLevelEntry 14 } 
                                                 
    zesrLevelclearSwitchTimes  OBJECT-TYPE 
    	SYNTAX      INTEGER{
                      reset(1)
                    }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " Clear switch-times of a level ring of this domain."      
    ::= { zesrLevelEntry 15 }  
    
    
    END 
              
                        
