-- *****************************************************************
-- PORT-POWER-SAVINGS-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-PORT-POWER-SAVINGS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000InterfaceIndex FROM CIE1000-TC
    TruthValue FROM SNMPv2-TC
    ;

cie1000PortPowerSavingsMib MODULE-IDENTITY
    LAST-UPDATED "201408070000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This is a private version of Port Power Saving. Port power saving
         reduces the switch power consumptionby lowering the port power supply
         when there is no link partner connected to a port as well as when link
         partner is connected through a short cable."
    REVISION    "201408070000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 100 }


CIE1000PortPowerSavingsStatusType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the feature status."
    SYNTAX      INTEGER { no(0), yes(1), notSupported(2) }

cie1000PortPowerSavingsMibObjects OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMib 1 }

cie1000PortPowerSavingsCapabilities OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMibObjects 1 }

cie1000PortPowerSavingsCapabilitiesInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PortPowerSavingsCapabilitiesInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to interface capabilities"
    ::= { cie1000PortPowerSavingsCapabilities 1 }

cie1000PortPowerSavingsCapabilitiesInterfaceEntry OBJECT-TYPE
    SYNTAX      CIE1000PortPowerSavingsCapabilitiesInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of capability parameters"
    INDEX       {                   cie1000PortPowerSavingsCapabilitiesInterfaceIfIndex }
    ::= { cie1000PortPowerSavingsCapabilitiesInterfaceTable 1 }

CIE1000PortPowerSavingsCapabilitiesInterfaceEntry ::= SEQUENCE {
    cie1000PortPowerSavingsCapabilitiesInterfaceIfIndex      CIE1000InterfaceIndex,
    cie1000PortPowerSavingsCapabilitiesInterfaceLinkPartner  TruthValue,
    cie1000PortPowerSavingsCapabilitiesInterfaceShortReach   TruthValue
}

cie1000PortPowerSavingsCapabilitiesInterfaceIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PortPowerSavingsCapabilitiesInterfaceEntry 1 }

cie1000PortPowerSavingsCapabilitiesInterfaceLinkPartner OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicate whether interface is capable for detecting link partner or
         not. true means interface is capable to detect link partner, false
         means interface is not capable to detect link partner."
    ::= { cie1000PortPowerSavingsCapabilitiesInterfaceEntry 2 }

cie1000PortPowerSavingsCapabilitiesInterfaceShortReach OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether interface is able to determine the cable length
         connected to partner port. true means interface is capable to determine
         the cable length, false means interface is not capable to determine the
         cable length."
    ::= { cie1000PortPowerSavingsCapabilitiesInterfaceEntry 3 }

cie1000PortPowerSavingsConfig OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMibObjects 2 }

cie1000PortPowerSavingsConfigInterfaceParamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PortPowerSavingsConfigInterfaceParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table provides Port Power Savings configuration for an interface"
    ::= { cie1000PortPowerSavingsConfig 1 }

cie1000PortPowerSavingsConfigInterfaceParamEntry OBJECT-TYPE
    SYNTAX      CIE1000PortPowerSavingsConfigInterfaceParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of Port Power Savings configurable parameters"
    INDEX       {                   cie1000PortPowerSavingsConfigInterfaceParamIfIndex }
    ::= { cie1000PortPowerSavingsConfigInterfaceParamTable 1 }

CIE1000PortPowerSavingsConfigInterfaceParamEntry ::= SEQUENCE {
    cie1000PortPowerSavingsConfigInterfaceParamIfIndex      CIE1000InterfaceIndex,
    cie1000PortPowerSavingsConfigInterfaceParamLinkPartner  TruthValue,
    cie1000PortPowerSavingsConfigInterfaceParamShortReach   TruthValue
}

cie1000PortPowerSavingsConfigInterfaceParamIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PortPowerSavingsConfigInterfaceParamEntry 1 }

cie1000PortPowerSavingsConfigInterfaceParamLinkPartner OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Save port power if there is no link partner connected to the port. true
         is to enable port power saving when there is no link partner connected,
         false is to disable it."
    ::= { cie1000PortPowerSavingsConfigInterfaceParamEntry 2 }

cie1000PortPowerSavingsConfigInterfaceParamShortReach OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Save port power if port is connected to link partner through short
         cable. true is to enable port power saving when link partner connected
         through short cable, false is to disable it."
    ::= { cie1000PortPowerSavingsConfigInterfaceParamEntry 3 }

cie1000PortPowerSavingsStatus OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMibObjects 3 }

cie1000PortPowerSavingsStatusInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PortPowerSavingsStatusInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to Port Power Savings interface status"
    ::= { cie1000PortPowerSavingsStatus 1 }

cie1000PortPowerSavingsStatusInterfaceEntry OBJECT-TYPE
    SYNTAX      CIE1000PortPowerSavingsStatusInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of status parameters"
    INDEX       { cie1000PortPowerSavingsStatusInterfaceIfIndex }
    ::= { cie1000PortPowerSavingsStatusInterfaceTable 1 }

CIE1000PortPowerSavingsStatusInterfaceEntry ::= SEQUENCE {
    cie1000PortPowerSavingsStatusInterfaceIfIndex        CIE1000InterfaceIndex,
    cie1000PortPowerSavingsStatusInterfaceNoLinkPartner  CIE1000PortPowerSavingsStatusType,
    cie1000PortPowerSavingsStatusInterfaceShortCable     CIE1000PortPowerSavingsStatusType
}

cie1000PortPowerSavingsStatusInterfaceIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PortPowerSavingsStatusInterfaceEntry 1 }

cie1000PortPowerSavingsStatusInterfaceNoLinkPartner OBJECT-TYPE
    SYNTAX      CIE1000PortPowerSavingsStatusType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicate whether port is saving power due to no link partner connected."
    ::= { cie1000PortPowerSavingsStatusInterfaceEntry 2 }

cie1000PortPowerSavingsStatusInterfaceShortCable OBJECT-TYPE
    SYNTAX      CIE1000PortPowerSavingsStatusType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicate whether port is saving power due to link partner connected
         through short cable."
    ::= { cie1000PortPowerSavingsStatusInterfaceEntry 3 }

cie1000PortPowerSavingsMibConformance OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMib 2 }

cie1000PortPowerSavingsMibCompliances OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMibConformance 1 }

cie1000PortPowerSavingsMibGroups OBJECT IDENTIFIER
    ::= { cie1000PortPowerSavingsMibConformance 2 }

cie1000PortPowerSavingsCapabilitiesInterfaceInfoGroup OBJECT-GROUP
    OBJECTS     {                   cie1000PortPowerSavingsCapabilitiesInterfaceIfIndex,
                  cie1000PortPowerSavingsCapabilitiesInterfaceLinkPartner,
                  cie1000PortPowerSavingsCapabilitiesInterfaceShortReach }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PortPowerSavingsMibGroups 1 }

cie1000PortPowerSavingsConfigInterfaceParamTableInfoGroup OBJECT-GROUP
    OBJECTS     {                   cie1000PortPowerSavingsConfigInterfaceParamIfIndex,
                  cie1000PortPowerSavingsConfigInterfaceParamLinkPartner,
                  cie1000PortPowerSavingsConfigInterfaceParamShortReach }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PortPowerSavingsMibGroups 2 }

cie1000PortPowerSavingsStatusInterfaceTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PortPowerSavingsStatusInterfaceIfIndex,
                  cie1000PortPowerSavingsStatusInterfaceNoLinkPartner,
                  cie1000PortPowerSavingsStatusInterfaceShortCable }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PortPowerSavingsMibGroups 3 }

cie1000PortPowerSavingsMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS {                        cie1000PortPowerSavingsCapabilitiesInterfaceInfoGroup,
                       cie1000PortPowerSavingsConfigInterfaceParamTableInfoGroup,
                       cie1000PortPowerSavingsStatusInterfaceTableInfoGroup }

    ::= { cie1000PortPowerSavingsMibCompliances 1 }

END
