-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- $Log: ZYXEL-CABLE-DIAG-MIB.mib $ 
-- Revision 1.0  2016/10/19 18:00:00 Tiger Fu 
-- Revision 1.1  2016/11/03 14:00:00 Tiger Fu 
-- Initial revision 

ZYXEL-CABLE-DIAG-MIB DEFINITIONS ::= BEGIN

	--  ================================================
	--              Include related libraries   
    --  ================================================

    IMPORTS
		enterprises			FROM RFC1155-SMI                                
		OBJECT-TYPE			FROM SNMPv2-SMI				  				
   		esMgmt				FROM ZYXEL-ES-SMI
   		ifIndex				FROM IF-MIB;

    --  ================================================
	--               ROOT(Cable Diagnostic)
    --  ================================================
	zyxelCableDiagnostic MODULE-IDENTITY
		LAST-UPDATED	"201610190000Z"    
		ORGANIZATION	"Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for cable diagnostic."
		::= { esMgmt 112 }                       

    --  ================================================
	--              Cable Diagnostic Setup
    --  ================================================
	zyxelCableDiagnosticSetup OBJECT IDENTIFIER ::= { zyxelCableDiagnostic 1 }

	--  ================================================
	--           Cable Diagnostic Port Table
    --  ================================================
 	zyxelCableDiagnosticPortTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF ZyxelCableDiagnosticPortEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "A table containing information about cable diagnostic 
	        test on the device's interfaces. An entry appears in 
	        this table for each interface which is capable to run 
	        cable diagnostic test."
	    ::= { zyxelCableDiagnosticSetup 1 }

	--  ================================================
	--           Cable Diagnostic Port Entry
    --  ================================================
	zyxelCableDiagnosticPortEntry OBJECT-TYPE
	    SYNTAX     ZyxelCableDiagnosticPortEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "An entry in the zyxelCableDiagnosticPortTable, containing the information 
	        about cable diagnostic test on an interface."
	    INDEX      { ifIndex }
	    ::= { zyxelCableDiagnosticPortTable 1 }
	
	ZyxelCableDiagnosticPortEntry ::= SEQUENCE {
		    zyCableDiagnosticPortAction
		        INTEGER
	    }
	
	zyCableDiagnosticPortAction OBJECT-TYPE
	    SYNTAX INTEGER
	    {
	    	none(0),
	        start(1),
	        clear(2)
	    }
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	        "Indicates the cable diagnostic test action to be executed on the interface.
				none(0)    - No action is executed on the interface.
				             When read, the value 'none' is returned.
				start(1)   - Start the test on the interface.
				clear(2)   - Clear all the test results on the interface.
							 The value of the following object of the entry will become 'none'.
							 -- zyCableDiagnosticPortActionStatus

						 	 The value of the following objects of the entry will become 'unknown'.
							 -- zyCableDiagnosticPortResultPairAStatus
							 -- zyCableDiagnosticPortResultPairBStatus
							 -- zyCableDiagnosticPortResultPairCStatus
							 -- zyCableDiagnosticPortResultPairDStatus
			
							 The value of the following objects of the entry will become 'na'.
							 -- zyCableDiagnosticPortResultPairALength
							 -- zyCableDiagnosticPortResultPairBLength
							 -- zyCableDiagnosticPortResultPairCLength
							 -- zyCableDiagnosticPortResultPairDLength
							 -- zyCableDiagnosticPortResultPairADistanceToFault
							 -- zyCableDiagnosticPortResultPairBDistanceToFault
							 -- zyCableDiagnosticPortResultPairCDistanceToFault
							 -- zyCableDiagnosticPortResultPairDDistanceToFault"  
	    ::= { zyxelCableDiagnosticPortEntry 1 }
		
	--  ================================================
	--             Cable Diagnostic Status
    --  ================================================     
	zyxelCableDiagnosticStatus OBJECT IDENTIFIER ::= { zyxelCableDiagnostic 2 }

	--  ================================================
	--         Cable Diagnostic Port Status Table
    --  ================================================
 	zyxelCableDiagnosticPortStatusTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF ZyxelCableDiagnosticPortStatusEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "A table containing information about cable diagnostic status on the device's interfaces."
	    ::= { zyxelCableDiagnosticStatus 1 }

	--  ================================================
	--         Cable Diagnostic Port Status Entry
    --  ================================================
	zyxelCableDiagnosticPortStatusEntry OBJECT-TYPE
	    SYNTAX     ZyxelCableDiagnosticPortStatusEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "An entry in the zyxelCableDiagnosticPortStatusTable, containing the information 
	        about cable diagnostic status on an interface."
	    INDEX      { ifIndex }
	    ::= { zyxelCableDiagnosticPortStatusTable 1 }
	
	ZyxelCableDiagnosticPortStatusEntry ::= SEQUENCE {
		    zyCableDiagnosticPortStatusActionStatus
		        INTEGER
	    }
	
	zyCableDiagnosticPortStatusActionStatus OBJECT-TYPE
	    SYNTAX INTEGER
	    {
	    	none(0),
	        success(1),
	        failure(2),
			processing(3)
	    }
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the status of the last cable diagnostic test action set on the interface.
				none(0)         - The cable diagnostic has never been run for this interface or the previous result has been cleared. 
				success(1)      - The last cable diagnostic test was done successfully. 
				failure(2)      - The last cable diagnostic test was failed.
				processing(3)   - The cable diagnostic is running currently on the interface."  
	    ::= { zyxelCableDiagnosticPortStatusEntry 1 }

	--  ================================================
	--         Cable Diagnostic Port Result Table
    --  ================================================		
	zyxelCableDiagnosticPortResultTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF ZyxelCableDiagnosticPortResultEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "A table containing information about cable diagnostic test result on the device's interfaces."
	    ::= { zyxelCableDiagnosticStatus 2 }

	--  ================================================
	--         Cable Diagnostic Port Result Entry
    --  ================================================		
	zyxelCableDiagnosticPortResultEntry OBJECT-TYPE
	    SYNTAX     ZyxelCableDiagnosticPortResultEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	        "An entry in the zyxelCableDiagnosticPortResultTable, containing the information 
	        about cable diagnostic test result on an interface."
	    INDEX      { ifIndex }
	    ::= { zyxelCableDiagnosticPortResultTable 1 }
	
	ZyxelCableDiagnosticPortResultEntry ::= SEQUENCE {
			zyCableDiagnosticPortResultPairAStatus 
				INTEGER,
			zyCableDiagnosticPortResultPairBStatus 
				INTEGER,
			zyCableDiagnosticPortResultPairCStatus 
				INTEGER,
			zyCableDiagnosticPortResultPairDStatus
				INTEGER,
			zyCableDiagnosticPortResultPairALength
				INTEGER,
			zyCableDiagnosticPortResultPairBLength
				INTEGER,
			zyCableDiagnosticPortResultPairCLength
				INTEGER,
			zyCableDiagnosticPortResultPairDLength
				INTEGER,
			zyCableDiagnosticPortResultPairADistanceToFault
				INTEGER,
			zyCableDiagnosticPortResultPairBDistanceToFault
				INTEGER,
			zyCableDiagnosticPortResultPairCDistanceToFault
				INTEGER,
			zyCableDiagnosticPortResultPairDDistanceToFault
				INTEGER
		}
	
	zyCableDiagnosticPortResultPairAStatus OBJECT-TYPE
	    SYNTAX INTEGER
	    {
			ok(1),
			open(2),
			short(3),
			openshort(4),
			crosstalk(5),
			unknown(6),
			unsupported(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates the status of the cable pairA."  
    ::= { zyxelCableDiagnosticPortResultEntry 1 }

	zyCableDiagnosticPortResultPairBStatus OBJECT-TYPE
	    SYNTAX INTEGER
	    {
			ok(1),
			open(2),
			short(3),
			openshort(4),
			crosstalk(5),
			unknown(6),
			unsupported(7)
	    }
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the status of the cable pairB."  
	    ::= { zyxelCableDiagnosticPortResultEntry 2 }
	
	zyCableDiagnosticPortResultPairCStatus OBJECT-TYPE
	    SYNTAX INTEGER
	    {
			ok(1),
			open(2),
			short(3),
			openshort(4),
			crosstalk(5),
			unknown(6),
			unsupported(7)
	    }
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the status of the cable pairC."  
	    ::= { zyxelCableDiagnosticPortResultEntry 3 }

	zyCableDiagnosticPortResultPairDStatus OBJECT-TYPE
	    SYNTAX INTEGER
	    {
			ok(1),
			open(2),
			short(3),
			openshort(4),
			crosstalk(5),
			unknown(6),
			unsupported(7)
	    }
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the status of the cable pairD."  
	    ::= { zyxelCableDiagnosticPortResultEntry 4 }
	
	zyCableDiagnosticPortResultPairALength OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the length of the cable pairA. 
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 5 }

	zyCableDiagnosticPortResultPairBLength OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the length of the cable pairB. 
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 6 }		

	zyCableDiagnosticPortResultPairCLength OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the length of the cable pairC. 
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 7 }

	zyCableDiagnosticPortResultPairDLength OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the length of the cable pairD. 
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 8 }

	zyCableDiagnosticPortResultPairADistanceToFault OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the distance to the fault point of the cable pairA.
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 9 }

	zyCableDiagnosticPortResultPairBDistanceToFault OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the distance to the fault point of the cable pairB.
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 10 }	

	zyCableDiagnosticPortResultPairCDistanceToFault OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the distance to the fault point of the cable pairC.
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 11 }		

	zyCableDiagnosticPortResultPairDDistanceToFault OBJECT-TYPE
	    SYNTAX INTEGER
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "Indicates the distance to the fault point of the cable pairD.
				The unit of this value is centimeter.
					na(-1)             -  The length value is invalid or the previous result has been cleared. 
					unsupported(-2)    -  The interface is unsupported for cable diagnostic, such as in fiber mode, port inactive, or chip-self unsupported."  
	    ::= { zyxelCableDiagnosticPortResultEntry 12 }				
END                                              