--  ************************************************
--  $Id: Vct-Loopdetect-59.mib 8 2009-01-16 12:17:08Z Caosl $
--
--  Vct-Loopdetect-59.mib: Vct Loopdetect 59 MIB file
--  
--  Jan. 2009, 072195
--   
--  Copyright(c) 2009 by ZTE Corporaton
--  All rights reservered
--
--  ************************************************

Vct-Loopdetect-59-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    OBJECT-TYPE, 
    NOTIFICATION-TYPE,
    experimental, 
    Integer32, 
    Unsigned32, 
    Counter32
        FROM SNMPv2-SMI

    MODULE-COMPLIANCE, 
    OBJECT-GROUP, 
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    enterprises                      
        FROM SNMPv2-SMI
    MacAddress,RowStatus                           
        FROM SNMPv2-TC

    mgmt, 
    NetworkAddress, 
    IpAddress, 
    Counter, 
    Gauge
        FROM RFC1155-SMI

    ifIndex            
		 FROM RFC1213-MIB;

    zte OBJECT IDENTIFIER ::= { enterprises 3902 }
    zxr10 OBJECT IDENTIFIER ::= { zte 3}

    zxr10switch OBJECT IDENTIFIER ::= { zxr10 102}
    
    switch59vct	OBJECT IDENTIFIER		::=  {  zxr10switch 24 } 
    switch59loopdetect	OBJECT IDENTIFIER		::=  {  zxr10switch 25 }
 
    DisplayString ::= OCTET STRING
    --  This data type is used to model textual information taken
    --  from the NVT ASCII character set.  By convention, objects
    --  with this syntax are declared as having
    --  SIZE (0..255)

                    
 -- The mib about vct and loopdetect
  	
    vctTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF VctEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The vctTable contains the parameter of cable."
        ::= { switch59vct 1 }
        
    vctEntry  OBJECT-TYPE
        SYNTAX  VctEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The parameter list of cable."
        INDEX  { vctIfindex }
        ::= { vctTable 1 }
        
    VctEntry ::=
        SEQUENCE {  
        	vctIfindex
        		 Integer32,
        	vctSetIfindex
        		 INTEGER,	 
            cableStatus
                 INTEGER,
            doubleCableStatus1-2
                 INTEGER,
            doubleCableStatus3-6
                 INTEGER,   
            doubleCableStatus4-5
                 INTEGER,
			doubleCableStatus7-8
                 INTEGER,
            doubleCableLength1-2
                 INTEGER,   
            doubleCableLength3-6
                 INTEGER,
            doubleCableLength4-5
                 INTEGER,
            doubleCableLength7-8
                 INTEGER
                }     
    vctIfindex  OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  not-accessible 
        STATUS      current
        DESCRIPTION
            "The ifindex of port,it is same to ifindex."
        ::= { vctEntry 1 }
    
    vctSetIfindex  OBJECT-TYPE
        SYNTAX   INTEGER{enable(1),disable(0)}
        MAX-ACCESS  read-write 
        STATUS      current
        DESCRIPTION
            "The ifindex of port, which need to be checked."
        ::= { vctEntry 2 }
        
    cableStatus  OBJECT-TYPE
        SYNTAX   INTEGER{good(1),fault(0)} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of cable, either good or fault."
        ::= { vctEntry 3 }   
    
    doubleCableStatus1-2  OBJECT-TYPE
        SYNTAX   INTEGER{ 
        			good(0),
        			open(1),
        			short(2),
        			broken(3),
        			mismatch(4),
        			fail(5),
        			unknown(6),
        			null(7)
        			} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of cable pair 1-2."
        ::= { vctEntry 4 }

    doubleCableStatus3-6  OBJECT-TYPE
        SYNTAX   INTEGER{
        			good(0),
        			open(1),
        			short(2),
        			broken(3),
        			mismatch(4),
        			fail(5),
        			unknown(6),
        			null(7)
        			} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of cable pair 3-6."
        ::= { vctEntry 5 }


    doubleCableStatus4-5  OBJECT-TYPE
        SYNTAX   INTEGER{
        			good(0),
        			open(1),
        			short(2),
        			broken(3),
        			mismatch(4),
        			fail(5),
        			unknown(6),
        			null(7)
        			} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of cable pair 4-5."
        ::= { vctEntry 6 }


    doubleCableStatus7-8  OBJECT-TYPE
        SYNTAX   INTEGER{
        			good(0),
        			open(1),
        			short(2),
        			broken(3),
        			mismatch(4),
        			fail(5),
        			unknown(6),
        			null(7)
           			} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of cable pair 7-8."
        ::= { vctEntry 7 }

    
    doubleCableLength1-2  OBJECT-TYPE
        SYNTAX   INTEGER{
        			lessthan50(200),
        			from50to80(201),
        			from80to110(202),
        			from110to140(203),
        			morethan140(204),
        			unknow(205),
        			null(206)
        			}
        MAX-ACCESS  read-only 
        STATUS  current
        DESCRIPTION
            "The length of cable pair 1-2."
        ::= { vctEntry 8 }
        
    doubleCableLength3-6  OBJECT-TYPE
        SYNTAX   INTEGER{
        			lessthan50(200),
        			from50to80(201),
        			from80to110(202),
        			from110to140(203),
        			morethan140(204),
        			unknow(205),  
        			null(206)
        			}        
        MAX-ACCESS  read-only 
        STATUS  current
        DESCRIPTION
            "The length of cable pair 3-6."
        ::= { vctEntry 9 }        


    doubleCableLength4-5  OBJECT-TYPE
        SYNTAX   INTEGER{
        			lessthan50(200),
        			from50to80(201),
        			from80to110(202),
        			from110to140(203),
        			morethan140(204),
        			unknow(205),
        			null(206)
        			}
        MAX-ACCESS  read-only 
        STATUS  current
        DESCRIPTION
            "The length of cable pair 4-5."
        ::= { vctEntry 10 }
                
    doubleCableLength7-8  OBJECT-TYPE
        SYNTAX   INTEGER{
        			lessthan50(200),
        			from50to80(201),
        			from80to110(202),
        			from110to140(203),
        			morethan140(204),
        			unknow(205),
        			null(206)
        			}
        MAX-ACCESS  read-only 
        STATUS  current
        DESCRIPTION
            "The length of cable pair 7-8."
        ::= { vctEntry 11 }  
        
    loopdetectReopenTime  OBJECT-TYPE
        SYNTAX  Integer32(1..16777216)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The max time when the loopdetected port is "
        ::= { switch59loopdetect 1 }
          
    loopdetectTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF LoopdetectEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The parameter which the loopdetectTable contains."
        ::= { switch59loopdetect 2 }
 
    loopdetectEntry  OBJECT-TYPE
        SYNTAX  LoopdetectEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The parameter list shows the happened loopdetect."
        INDEX  { loopdetectPortIfindex }
        ::= { loopdetectTable 1 }
        
    LoopdetectEntry ::=
        SEQUENCE {   
        	loopdetectPortIfindex
        		 Integer32,
            loopdetectPortOperStatus
                 INTEGER,
            loopdetectPortControl
                 INTEGER, 
            loopdetectPortVid
                 OCTET STRING, 
            loopdetectPortFlag
                 INTEGER,   
            loopdetectPortProtectFlag
                 INTEGER,
			loopdetectPortReopenTime
                 Integer32,
            loopdetectVlan
                 Integer32
                }
                
    loopdetectPortIfindex  OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  not-accessible 
        STATUS      current
        DESCRIPTION
            "The index of port, it is same to ifindex."
        ::= { loopdetectEntry 1 } 
        
    loopdetectPortOperStatus  OBJECT-TYPE
        SYNTAX   INTEGER{up(1),down(0)}
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The status of the port."
        ::= { loopdetectEntry 2 }   
    
    loopdetectPortControl  OBJECT-TYPE
        SYNTAX   INTEGER{enable(1),disable(0)} 
        MAX-ACCESS  read-write 
        STATUS      current
        DESCRIPTION
            "The loopdetect protocol enable/disable."
        ::= { loopdetectEntry 3 }
            
    loopdetectPortVid  OBJECT-TYPE
        SYNTAX   OCTET STRING(SIZE(0..16))
        MAX-ACCESS  read-write 
        STATUS  current
        DESCRIPTION
            "The vlan which the loopdetect port belong to."
        ::= { loopdetectEntry 4 }

    loopdetectPortFlag  OBJECT-TYPE
        SYNTAX   INTEGER{no(0),yes(1)} 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "The result of loopdetect on the port."
        ::= { loopdetectEntry 5 }  
        
    loopdetectPortProtectFlag  OBJECT-TYPE
        SYNTAX   INTEGER{enable(1),disable(0)}
        MAX-ACCESS  read-write 
        STATUS      current
        DESCRIPTION
            "The loopdetect protect in the port is enable/disable."
        ::= { loopdetectEntry 6 }

    loopdetectPortReopenTime  OBJECT-TYPE
        SYNTAX   Integer32 
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "How long the port will be opened "
        ::= { loopdetectEntry 7 }
     
    loopdetectVlan  OBJECT-TYPE
        SYNTAX   Integer32(1..4094)        
        MAX-ACCESS  read-only 
        STATUS  current
        DESCRIPTION
            "The vlan contains the port which happened loopdetect."
        ::= { loopdetectEntry 8 }      
                                 
    END
