-- MIB file created 05-Nov-2004 15:22:19, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-PORT-CHANNEL-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-PORT-CHANNEL-MIB.my"
-- Compile options "4 7 F H N O W 03 06 0B 0G 0N 0T"

IMPORTS
    RowStatus, TimeStamp, TruthValue
            FROM SNMPv2-TC-v1
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    InterfaceIndex, ifIndex
            FROM IF-MIB
    ciscoMgmt
            FROM CISCO-SMI
    PortMemberList
            FROM CISCO-ST-TC
    Gauge
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212;

ciscoPortChannelMIB OBJECT IDENTIFIER ::= { ciscoMgmt 285 }
-- MODULE-IDENTITY
--  LastUpdated
--    200409130000Z
--  OrgName
--    Cisco Systems Inc.
--  ContactInfo
--         Cisco Systems
--          Customer Service
--    Postal: 170 W Tasman Drive
--          San Jose, CA  95134
--          USA
--    Tel: +1 800 553 -NETS
--    E-mail: cs-san@cisco.com
--  Descr
--    The MIB module for management of Port Channel ports.
--     In addition to this MIB, CISCO-FC-FE-MIB and interface
--     mib (rfc2863) will also contain entries for Port Channel
--     ports.
--  RevDate
--    200409130000Z
--  RevDescr
--    Added new object portChannelExtOperChannelGrpMode to
--    portChannelExtTable. Changed the SYNTAX of 
--    portChannelExtPersistent to INTEGER from TruthValue.
--  RevDate
--    200406080000Z
--  RevDescr
--    Added new tables portChannelGrpIfExtTable and 
--    portChannelExtTable. Also, added new object
--    portChannelProtocolEnable.
--  RevDate
--    200403110000Z
--  RevDescr
--    Added portChannelMemberOperStatus to portChannelTable. 
--  RevDate
--    200305280000Z
--  RevDescr
--    Superceeded portChannelMIBCompliances with 
--    portChannelMIBCompliances1. Added 
--    portChannelAdminChannelMode object to 
--    portChannelMIBCompliances1. 
--  RevDate
--    200210020000Z
--  RevDescr
--    Initial version of this MIB module.

ciscoPortChannelObjects OBJECT IDENTIFIER ::= { ciscoPortChannelMIB 1 }
portChannelMIBConformance OBJECT IDENTIFIER ::= { ciscoPortChannelMIB 2 }
portChannelConfig OBJECT IDENTIFIER ::= { ciscoPortChannelObjects 1 }
portChannelStatistics OBJECT IDENTIFIER ::= { ciscoPortChannelObjects 2 }
portChannelNotification OBJECT IDENTIFIER ::= { ciscoPortChannelObjects 3 }
portChannelNotifications OBJECT IDENTIFIER ::= { portChannelNotification 0 }
portChannelMIBCompliances OBJECT IDENTIFIER ::= { portChannelMIBConformance 1 }
portChannelMIBGroups OBJECT IDENTIFIER ::= { portChannelMIBConformance 2 }

PortChannelMode ::= INTEGER {
        auto(1),
        on(2),
        off(3),
        desirable(4)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    Defines how a Port Channel does channeling.
--              auto(1)      - place the port into passive 
--                             negotiation state, in which the
--                             port waits for its peer to 
--                             initiate negotiation.
--              on(2)        - force the port to enable 
--                             channeling.
--              off(3)       - channeling is disabled.
--              desirable(4) - place the port into active
--                             negotiating state, in which the
--                             port initiates negotiations with
--                             its peer and if the peer end 
--                             agrees, channeling is enabled 
--                             between them. 

PortChannelGroupMode ::= INTEGER {
        on(1),
        active(2)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    Defines how a Port Channel does channeling.
--          on(1) -       the port shall operate as part of a 
--                        port channel or remain inactive. The port
--                        channel protocol is turned off and peer 
--                        port is assumed to be configured in 'on' 
--                        mode.
--          active(2)-    indicates that port shall initiate port 
--                        channel negotiation with peer port 
--                        according to the port channel protocol 
--                        regardless of the channel mode of the 
--                        peer port.

portChannelTable OBJECT-TYPE
    SYNTAX SEQUENCE OF PortChannelEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table facilitates the creation and deletion of a
         Port Channel interface to achieve higher bandwidths
         than just one E_port. More than one E_port can be a 
         member of an Port Channel port.
         NOTE:Only E_ports can be members of an Port Channel
         port.
         
         A port is added to a Port Channel port by setting 
         portChannelMemberList,and the 'manner' in which the 
         agent performs the type of addition is determined 
         by the value of portChannelAddType.
         
         During the period when port(s) is being added to the
         Port Channel, the agent will not allow to change any 
         parameters of the port(s) being added. Also if the 
         operation is successful (i.e. port(s) is added to the 
         Port Channel) then also the agent will not allow to 
         change any parameters of the individual port(s) that is
         added. But any change done to the Port Channel port
         will also be applied to the port(s) which are member(s)
         of this Port channel port. Once a port(s) is removed
         from a Port Channel Port it will retain the values that
         it had when it was a member of the Port Channel port.
         It will not have the old values it had before joining
         the Port Channel port. 
        
         The port(s) that are added/removed to/from a 
         Port Channel port will be put into administratively
         down (ifAdminStatus='down') which results into
         operationally down(ifOperStatus='down'). To bring the 
         port up again, the user has to set the port to be
         administratively up(ifAdminStatus='up'). Then the port
         goes through its initialization cycle to become 
         active(ifOperStatus='up'). "
    ::= { portChannelConfig 1 }

portChannelEntry OBJECT-TYPE
    SYNTAX PortChannelEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "There is one entry in this table for each created
         Port Channel port. "
    INDEX { portChannelIndex }
    ::= { portChannelTable 1 }

PortChannelEntry ::= SEQUENCE {
    portChannelIndex Gauge,
    portChannelIfIndex InterfaceIndex,
    portChannelAdminChannelMode PortChannelMode,
    portChannelOperChannelMode PortChannelMode,
    portChannelAddType INTEGER,
    portChannelLastActionStatus INTEGER,
    portChannelLastActionStatusCause SnmpAdminString,
    portChannelLastActionTime TimeStamp,
    portChannelMemberList PortMemberList,
    portChannelCreationTime TimeStamp,
    portChannelRowStatus RowStatus,
    portChannelMemberOperStatus PortMemberList
    }

portChannelIndex OBJECT-TYPE
    SYNTAX Gauge(1..2048)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An index that uniquely identifies an entry in the
         portChannelTable table. "
    ::= { portChannelEntry 1 }

portChannelIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
--    Rsyntax INTEGER(1..2147483647)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The ifIndex of this interface. "
    ::= { portChannelEntry 2 }

portChannelAdminChannelMode OBJECT-TYPE
    SYNTAX PortChannelMode
--    Rsyntax INTEGER {
--        auto(1),
--        on(2),
--        off(3),
--        desirable(4)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The channel mode desired by the network manager.
         If this object is configured to be auto(1), then the 
         'portChannelOperChannelMode' will show the current
          operating channel mode of port. "
    DEFVAL { on }
    ::= { portChannelEntry 3 }

portChannelOperChannelMode OBJECT-TYPE
    SYNTAX PortChannelMode
--    Rsyntax INTEGER {
--        auto(1),
--        on(2),
--        off(3),
--        desirable(4)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The current operating channel mode of the port. "
    ::= { portChannelEntry 4 }

portChannelAddType OBJECT-TYPE
    SYNTAX INTEGER {
        normal(1),
        force(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The method to be adopted by the agent to add 
         port(s) to a Port Channel port.
         If normal(1), then a compatibility check is done on the
         parameters of the port(s) being added to this Port
         Channel. The port(s) being added must have the same
         physical and configured parameters as the Port
         Channel port.
         If force(2), a compatibility check is done on only
         physical parameters. The port(s) being added to this
         Port Channel port must have same physical parameters.
         The operation will fail only if the physical parameters
         are not same. The configured parameters of the 
         port(s) being added are overwritten by 
         configured parameters of this Port Channel port. "
    DEFVAL { normal }
    ::= { portChannelEntry 5 }

portChannelLastActionStatus OBJECT-TYPE
    SYNTAX INTEGER {
        successful(1),
        failed(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The status of the last operation (add or remove a 
         member) done to change the member list of a Port 
         Channel Port.
         When no ports are added or the last operation is
         successful then this object will be successful(1).
         If this value is failed(2) then the user can look
         at portChannelLastAddStatusCause to find the reason
         of failure. "
    ::= { portChannelEntry 6 }

portChannelLastActionStatusCause OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The cause of failure to last operation (add or remove
         a member) done to change the member list of a Port
         Channel port. This object will be zero length string
         if 'portChannelLastActionStatus' is successful(1). "
    ::= { portChannelEntry 7 }

portChannelLastActionTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The timestamp indicating the time of last action
         performed on this entry. "
    ::= { portChannelEntry 8 }

portChannelMemberList OBJECT-TYPE
    SYNTAX PortMemberList
--    Rsyntax OCTET STRING(SIZE(0..64))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The list of ifIndex's of the E_ports that are members
         of this Port Channel port. "
    DEFVAL { ''H }
    ::= { portChannelEntry 9 }

portChannelCreationTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The timestamp of this entry's creation time.
         Note that at this creation time, a discontinuity occurs
         in the statistic/error counters which are defined in
         CISCO-FC-FE-MIB, and which are associated with this
         Port Channel. "
    ::= { portChannelEntry 10 }

portChannelRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The status of this conceptual row. "
    ::= { portChannelEntry 11 }

portChannelMemberOperStatus OBJECT-TYPE
    SYNTAX PortMemberList
--    Rsyntax OCTET STRING(SIZE(0..64))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The list of port channel forwarding status of the
         E_ports that are members of this Port Channel port.
         Every four-byte is a status of the corresponding 
         member port represented by ifIndex in 
         portChannelMemberList.
         The portChannelMemberOperStatus may not be the same as 
         ifOperStatus.
         A value of '00 00 00 01' means the corresponding member
         port is participating in the load balancing of the 
         port channel.
         A value of '00 00 00 02' means the corresponding member
         port is not participating in the load balancing of the 
         port channel. "
    DEFVAL { ''H }
    ::= { portChannelEntry 12 }

portChannelProtocolEnable OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "Enables/disables Port Channel Protocol. If enabled, Port
        Channel Protocol provides following features:
         - detection and correction of mis-configurations of 
           interfaces involved with a Port Channel.
         - automatic creation of Channel Groups (and therefore
           Port Channels) if both ends of the links are compatible
           with each other."
    ::= { portChannelConfig 2 }

portChannelGrpIfExtTable OBJECT-TYPE
    SYNTAX SEQUENCE OF PortChannelGrpIfExtEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table facilitates Channel Group specific 
        interface configurations."
    ::= { portChannelConfig 3 }

portChannelGrpIfExtEntry OBJECT-TYPE
    SYNTAX PortChannelGrpIfExtEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "There is one entry in this table for each created
         Port Channel port."
    INDEX { ifIndex }
    ::= { portChannelGrpIfExtTable 1 }

PortChannelGrpIfExtEntry ::= SEQUENCE {
    portChannelGrpIfAutoCreation TruthValue
    }

portChannelGrpIfAutoCreation OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates if this interface may be part of 
        automatically created Channel Groups (and therefore 
        Port Channels)."
    ::= { portChannelGrpIfExtEntry 1 }

portChannelExtTable OBJECT-TYPE
    SYNTAX SEQUENCE OF PortChannelExtEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table extends the portChannelTable to support Port
        Channel Protocol."
    ::= { portChannelConfig 4 }

portChannelExtEntry OBJECT-TYPE
    SYNTAX PortChannelExtEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "There is one entry in this table for each created
         Port Channel port. It contains an entry for every
         Port Channel that is either automatically created or
         manually configured."
    INDEX { portChannelIndex }
-- Augments portChannelEntry
    ::= { portChannelExtTable 1 }

PortChannelExtEntry ::= SEQUENCE {
    portChannelExtChannelGrpMode PortChannelGroupMode,
    portChannelExtAutoCreated TruthValue,
    portChannelExtPersistent INTEGER,
    portChannelExtOperChannelGrpMode PortChannelGroupMode
    }

portChannelExtChannelGrpMode OBJECT-TYPE
    SYNTAX PortChannelGroupMode
--    Rsyntax INTEGER {
--        on(1),
--        active(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The admin channel group mode of this port channel."
    ::= { portChannelExtEntry 1 }

portChannelExtAutoCreated OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Indicates of this port channel was automatically 
        created.
        Note that this object is valid only for Fibre Channel
        port channels."
    ::= { portChannelExtEntry 2 }

portChannelExtPersistent OBJECT-TYPE
    SYNTAX INTEGER {
        noOp(1),
        enable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object converts an auto-created port channel 
        to a persistent port channel when it is set to 'enable'.
        
        No action is taken if this object is set to 'noOp'.
        The value of the object when read is always 'noOp'."
    ::= { portChannelExtEntry 3 }

portChannelExtOperChannelGrpMode OBJECT-TYPE
    SYNTAX PortChannelGroupMode
--    Rsyntax INTEGER {
--        on(1),
--        active(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The operational channel group mode of this port channel."
    ::= { portChannelExtEntry 4 }

portChannelGroup OBJECT IDENTIFIER ::= { portChannelMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects related to Port Channel Interface
--     parameters.
--  objects
--    portChannelIfIndex, portChannelAdminChannelMode, 
--    portChannelOperChannelMode, portChannelAddType, 
--    portChannelLastActionStatus, portChannelLastActionStatusCause, 
--    portChannelLastActionTime, portChannelMemberList, 
--    portChannelCreationTime, portChannelRowStatus

portChannelGroupRev1 OBJECT IDENTIFIER ::= { portChannelMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects related to Port Channel Interface
--     parameters.
--  objects
--    portChannelMemberOperStatus

portChannelProtocolGroup OBJECT IDENTIFIER ::= { portChannelMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects related to Port Channel Protocol
--     mamagement.
--  objects
--    portChannelProtocolEnable, portChannelGrpIfAutoCreation, 
--    portChannelExtChannelGrpMode, portChannelExtAutoCreated, 
--    portChannelExtPersistent, portChannelExtOperChannelGrpMode

portChannelMIBCompliance OBJECT IDENTIFIER ::= { portChannelMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for entities which 
--    implement the CISCO-PORT-CHANNEL-MIB mib.
--  Module
--    >>current<<
--   MandGroup
--    portChannelGroup
--   ObjVar
--    portChannelRowStatus

portChannelMIBCompliance1 OBJECT IDENTIFIER ::= { portChannelMIBCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for entities which 
--    implement the CISCO-PORT-CHANNEL-MIB mib.
--  Module
--    >>current<<
--   MandGroup
--    portChannelGroup
--   ObjVar
--    portChannelRowStatus
--   ObjVar
--    portChannelAdminChannelMode

portChannelMIBCompliance2 OBJECT IDENTIFIER ::= { portChannelMIBCompliances 3 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for entities which 
--    implement the CISCO-PORT-CHANNEL-MIB mib.
--  Module
--    >>current<<
--   MandGroup
--    portChannelGroup
--   MandGroup
--    portChannelGroupRev1
--   ObjVar
--    portChannelRowStatus
--   ObjVar
--    portChannelAdminChannelMode

portChannelMIBCompliance3 OBJECT IDENTIFIER ::= { portChannelMIBCompliances 4 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for entities which 
--    implement the CISCO-PORT-CHANNEL-MIB mib.
--  Module
--    >>current<<
--   MandGroup
--    portChannelGroup
--   MandGroup
--    portChannelGroupRev1
--   OptGroup
--    portChannelProtocolGroup
--   ObjVar
--    portChannelRowStatus
--   ObjVar
--    portChannelAdminChannelMode
--   ObjVar
--    portChannelProtocolEnable


END

