-- *****************************************************************
-- DLINKPRIME-POWER-SAVING-MIB.mib : D-Link Power Saving MIB
--
-- Copyright (c) 2014 D-Link Corporation, all rights reserved.
--
-- *****************************************************************
DLINKPRIME-POWER-SAVING-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-GROUP, MODULE-COMPLIANCE			
            FROM SNMPv2-CONF
        MODULE-IDENTITY, OBJECT-TYPE
            FROM SNMPv2-SMI
        DisplayString, TruthValue
            FROM SNMPv2-TC
        ifIndex
            FROM IF-MIB			
        dlinkPrimeCommon
	    FROM DLINK-ID-REC-MIB;

    dlinkPrimePowerSavingMIB MODULE-IDENTITY
        LAST-UPDATED "201404260000Z"
        ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "        D-Link Corporation
                 Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                         Taipei City 114, Taiwan, R.O.C
                 Tel:     +886-2-66000123
                 E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
                "The Structure of Power Saving Information for the
                 proprietary enterprise."
      
        REVISION "201301310000Z"
        DESCRIPTION
            "Initial version of this MIB module."
        REVISION "201404260000Z"
        DESCRIPTION
            "1.Modify the MIB file and object name,
               DLINK-POWER-SAVING-MIB to DLINKPRIME-POWER-SAVING-MIB,
               dlinkPowerSavingMIB to dlinkPrimePowerSavingMIB."
        ::= { dlinkPrimeCommon 12 }

-- -----------------------------------------------------------------------------
    dpPowerSavingMIBNotifications OBJECT IDENTIFIER ::= { dlinkPrimePowerSavingMIB 0 }		
    dpPowerSavingMIBObjects       OBJECT IDENTIFIER ::= { dlinkPrimePowerSavingMIB 1 }
    dpPowerSavingMIBConformance   OBJECT IDENTIFIER ::= { dlinkPrimePowerSavingMIB 2 }
    
--------------------------------------------------------------------------------
    dpPowerSavingGeneral          OBJECT IDENTIFIER ::= { dpPowerSavingMIBObjects 1 }
		dppsLinkDetectionEnabled OBJECT-TYPE
      SYNTAX          TruthValue
    	MAX-ACCESS      read-write
      STATUS          current
    	DESCRIPTION      	   
    	    "This object indicates the state of power saving by link status."    	            
    	DEFVAL { false }
    	::= { dpPowerSavingGeneral 1 }
    		
 		dppsHibernationEnabled OBJECT-TYPE
			SYNTAX          TruthValue
			MAX-ACCESS      read-write
			STATUS          current
			DESCRIPTION
            "This object indicates the state of powre saving by scheduled system 
            hibernation.
            Note:
			For stackable devices, the hibernation function only can be supported
			on the standalone mode.
			"
			DEFVAL { false }
			::= { dpPowerSavingGeneral 2 }
	
	dppsDimLedEnabled OBJECT-TYPE
		SYNTAX         TruthValue
		MAX-ACCESS     read-write
		STATUS         current
		DESCRIPTION
			"This object indicates the state of power saving by scheduled dimming LED."
		DEFVAL { false }
			::= { dpPowerSavingGeneral 3 }

	dppsLedAdminEnabled OBJECT-TYPE
		SYNTAX          TruthValue 
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
			"This object indicates the administrative state of LED of all ports."
		DEFVAL { true}
		::= { dpPowerSavingGeneral 4 }
				
	dppsPortShutdownEnabled OBJECT-TYPE
		SYNTAX          TruthValue 
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
			"This object indicates the state of power saving by scheduled port shutdown."
		DEFVAL { false }
		::= { dpPowerSavingGeneral 5 }	

--------------------------------------------------------------------------------	
    dpPowerSavingIfObjects        OBJECT IDENTIFIER ::= { dpPowerSavingMIBObjects 2 }
    	
    dppsIfEeeTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DppsIfEeeEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table consists of a list of EEE (Energy-Efficient Ethernet)
            state information for ports."
        ::= { dpPowerSavingIfObjects 1}       	

	dppsIfEeeEntry OBJECT-TYPE
		SYNTAX          DppsIfEeeEntry
		MAX-ACCESS      not-accessible
		STATUS          current
		DESCRIPTION
			"An entry contains EEE configuration on a port."
		INDEX       { ifIndex }
		::= { dppsIfEeeTable 1 }

	DppsIfEeeEntry ::= 		SEQUENCE {
	    dppsIfEeeStatus	INTEGER
	}               	

	dppsIfEeeStatus OBJECT-TYPE
		SYNTAX  INTEGER {
			enabled(1),
			disabled(2)
		}
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
			"This object indicates the EEE status on an interface.
            To set dppsIfEeeStatus to notAvailable has no effect.
			When read the value of 'notAvailable' means EEE is not supported 
			on the port."
		::= { dppsIfEeeEntry 2 }		
				
-- -----------------------------------------------------------------------------  	
	dppsScheduleCtrl OBJECT IDENTIFIER ::= { dpPowerSavingMIBObjects 3 }
			
	dppsHibernationTimeRange OBJECT-TYPE
		SYNTAX          DisplayString (SIZE (0..8))
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
			"This object indicates the time-range profile for system hibernation
			schedule.
			A zero length string indicates the schedule is not specified.
			"		
		::= { dppsScheduleCtrl 1 }
				
	dppsDimLedTimeRange OBJECT-TYPE
		SYNTAX          DisplayString (SIZE (0..8))
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
			"This object indicates the time-range profile for dimming LED schedule.
			A zero length string indicates the schedule is not specified.
			"		
		::= { dppsScheduleCtrl 2 }	
				 
	dppsPortShutdownScheduleTable OBJECT-TYPE
		SYNTAX          SEQUENCE OF DppsPortShutdownScheduleEntry
		MAX-ACCESS      not-accessible
		STATUS          current
		DESCRIPTION
			"A list of the shutdown configurations of the power saving."
		::= { dppsScheduleCtrl 3 }

	dppsPortShutdownScheduleEntry OBJECT-TYPE
		SYNTAX          DppsPortShutdownScheduleEntry
		MAX-ACCESS      not-accessible
		STATUS  current
		DESCRIPTION
			"An entry contains the time-range profile for port-shutdown schedule
			on a port. "
		INDEX   { ifIndex }
		::= { dppsPortShutdownScheduleTable 1 }

	DppsPortShutdownScheduleEntry ::= 		SEQUENCE {
		dppsPortShutdownTimeRange	DisplayString				
	}
				
	dppsPortShutdownTimeRange  OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..8))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
             "This object indicates the name of time-range profile.
             A zero length string indicates the schedule is not specified."
        ::= { dppsPortShutdownScheduleEntry 1 }
           		   

-- *****************************************************************************
-- MIB Conformance statements
-- *****************************************************************************
    dppsMIBCompliances  OBJECT IDENTIFIER  ::= { dpPowerSavingMIBConformance 1 }

    dppsMIBGroups  OBJECT IDENTIFIER  ::= { dpPowerSavingMIBConformance 2 }

    dppsMIBCompliance MODULE-COMPLIANCE
        STATUS          current
        DESCRIPTION
            "The compliance statement for entities which implement the
			DLINKPRIME-POWER-SAVING-MIB."
        MODULE          -- this module

		GROUP dppsLinkCfgGroup
        DESCRIPTION
            "This group does not need to be implemented if link down
            auto power saving is not supported."
		
		GROUP dppsLenCfgGroup
        DESCRIPTION
            "This group does not need to be implemented if cable diagnosis is
            not supported."
        
		GROUP dppsHiberCfgGroup
        DESCRIPTION
            "This group is mandatory if power saving schedule function
             is supported."
        
		GROUP dppsDimLedCfgGroup
        DESCRIPTION
            "This group is mandatory if power saving schedule function
             is supported."
        
		GROUP dppsShutdownCfgGroup
        DESCRIPTION
            "This group is mandatory if power saving schedule function
             is supported."
        
		GROUP dppsIfEeeCfgGroup
        DESCRIPTION
            "This group does not need to be implemented if EEE function
            is not supported."
        
        ::= { dppsMIBCompliances 1 }
		
-------------------------------------------------------------------------------		
	
    dppsDimLedCfgGroup OBJECT-GROUP
	    OBJECTS {
	        dppsDimLedEnabled,
		    dppsLedAdminEnabled,
		    dppsDimLedTimeRange
	    }
	    STATUS current
	    DESCRIPTION
		    "A collection of objects to configure or display the
            dimming LED schedule or LED administrative state information."
	    ::= { dppsMIBGroups 1 }

    dppsShutdownCfgGroup OBJECT-GROUP
	    OBJECTS {
	        dppsPortShutdownEnabled,
		    dppsPortShutdownTimeRange
	    }
	    STATUS current
	    DESCRIPTION
		    "A collection of objects to configure or display the
            port shutdown schedule information."
	    ::= { dppsMIBGroups 2 }

    dppsIfEeeCfgGroup OBJECT-GROUP
	    OBJECTS {
	        dppsIfEeeStatus
	    }
	    STATUS current
	    DESCRIPTION
		    "A collection of objects to configure or display the
            EEE state of ports."
	    ::= { dppsMIBGroups 3 }
                   	
	
END
