-- MIB file created 08-Sep-2009 13:34:16, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-ETHERNET-FABRIC-EXTENDER-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-ETHERNET-FABRIC-EXTENDER-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
            FROM IF-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Gauge
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212;

ciscoEthernetFabricExtenderMIB OBJECT IDENTIFIER ::= { ciscoMgmt 691 }
-- MODULE-IDENTITY
--  LastUpdated
--    200902230000Z
--  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-nexus5000@cisco.com
--  Descr
--    The MIB module for configuring one or more fabric
--    extenders to connect into a core switch.  Since fabric 
--    extenders might not be manageable entities, this MIB is
--    assumed to be instrumented on the core switch.  A fabric
--    extender may be hardwired or preconfigured with a list of 
--    uplink ports.  These uplink ports are used to connect to a 
--    core switch.  A fabric extender is assumed to be directly 
--    connected to its core switch. Each physical interface on 
--    the core switch is assumed to be connected to one and only
--    one fabric extender.  
--    
--    When an extender powers up, it runs a link local discovery 
--    protocol to find core switches.  The extender puts all 
--    available self identification in its discovery report.  
--    The core switch, depending on configuration, uses the 
--    extenders identification to accept or deny an extender 
--    from connecting. A fabric extender may be connected to 
--    different core switches via different uplink ports. In 
--    that case, each core switch's instance of the MIB may 
--    refer to the same extender.
--    
--    Ports on core switch used to connect to extenders
--    are known as Fabric ports.  A fabric port may be a physical
--    interface or a logical interface such as an EtherChannel.
--    An extender may connect into a core switch via more than 
--    one fabric port.  Non fabric ports on an extender are 
--    typically used to connect hosts/servers.
--  RevDate
--    200902230000Z
--  RevDescr
--    Initial version of this MIB module.

ciscoEthernetFabricExtenderMIBNotifs OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderMIB 0 }
ciscoEthernetFabricExtenderObjects OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderMIB 1 }
ciscoEthernetFabricExtenderMIBConformance OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderMIB 2 }
cefexConfig     OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderObjects 1 }
cEthernetFabricExtenderMIBCompliances OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderMIBConformance 1 }
cEthernetFabricExtenderMIBGroups OBJECT IDENTIFIER ::= { ciscoEthernetFabricExtenderMIBConformance 2 }

CiscoPortPinningMode ::= INTEGER {
        static(1)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This denotes the mode of re-pinning. Re-pinning defines
--    how traffic forwarding is altered between fabric extender
--    and its core switch in case of a fabric port state change. 
--    
--    For fabric extenders that do not support local forwarding, 
--    they do not perform normal address learning and forwarding
--    as a traditional 802.1d compliant bridge. A method named
--    'pinning' is used instead to dictate forwarding behavior.
--    That means, traffic from a specific non fabric port is always 
--    forwarded to its pinned fabric port (no local forwarding).
--    
--    Each non fabric port is 'pinned' to one of the fabric ports. 
--    Load balancing aspects affecting pinned fabric port 
--    selection is dictated by internal implementation.
--    
--    If a particular fabric port fails, all the non fabric ports 
--    pinned to the failed fabric port may need to be moved to
--    the remaining fabric ports, if any.
--    
--    Note that traffic distribution within a fabric EtherChannel
--    does not utilize the 'pinning' method.  The traditional hash 
--    of MAC address, IP address and TCP/UDP port is used to
--    select fabric port within a fabric EtherChannel.
--    
--    It is planned that more enumeration will be introduced in 
--    subsequent updates.
--    
--        static(1)  - If this mode is chosen, non fabric ports
--                     are not re-pinned to other fabric ports in 
--                     case of fabric port failure.

cefexBindingTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CefexBindingEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table has the binding information of a
        'Fabric Port' to 'Fabric Extender' on a 
        'Extender Core Switch'.  Each entry in this table 
        configures one fabric port.  
        
        A core switch does not accept fabric extender 
        connections into its fabric ports unless the
        extender matches an entry in this table.  Once matched,
        the extender is identified by the instances of the
        cefexBindingExtenderIndex in the matching row.
        
        The matching criteria and values to match for 
        each fabric extender are specified in a row in the
        cefexConfigTable.  Each row in the cefexConfigTable 
        is indexed by cefexBindingExtenderIndex.  Each row
        in this table has an unique cefexBindingExtenderIndex
        value, therefore, providing the linkage between
        the two tables. 
        
        It is expected that user first creates a row in
        the cefexConfigTable for a specific cefexBindingExtenderIndex,
        followed by creation of the corresponding row in
        this table for the same cefexBindingExtenderIndex..
        If a row in this table is created and if there is
        no corresponding row created in the cefexConfigTable, 
        then the agent will automatically create a row in the 
        cefexConfigTable with instance of every object in this
        row initialized to the DEFVAL."
    ::= { cefexConfig 1 }

cefexBindingEntry OBJECT-TYPE
    SYNTAX CefexBindingEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "There is one entry in this table for each core switch
        Interface that can be connected to an uplink interface 
        of a fabric extender."
    INDEX { cefexBindingInterfaceOnCoreSwitch }
    ::= { cefexBindingTable 1 }

CefexBindingEntry ::= SEQUENCE {
    cefexBindingInterfaceOnCoreSwitch InterfaceIndex,
    cefexBindingExtenderIndex Gauge,
    cefexBindingCreationTime TimeStamp,
    cefexBindingRowStatus RowStatus
    }

cefexBindingInterfaceOnCoreSwitch OBJECT-TYPE
    SYNTAX InterfaceIndex
--    Rsyntax INTEGER(1..2147483647)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object is the index that uniquely identifies an entry in
        the cefexBindingTable.  The value of this object is an IfIndex
        to a fabric port.  By creating a row in this table for 
        a particular core switch interface, the user enables that 
        core switch interface to accept a fabric extender. By default, 
        a core switch interface does not have an entry in this table 
        and consequently does not accept/respond to discovery 
        requests from fabric extenders."
    ::= { cefexBindingEntry 1 }

cefexBindingExtenderIndex OBJECT-TYPE
    SYNTAX Gauge(100..999)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The value of cefexBindingExtenderIndex used as an
        Index into the cefexConfigTable to select the Fabric
        Extender configuration for this binding entry.  However,
        a value in this table does not imply that an instance with
        this value exists in the cefexConfigTable.
        
        If an entry corresponding to the value of this object does
        not exist in cefexConfigTable, the system default behavior
        (using DEFVAL values for all the configuration objects as
        defined in cefexConfigTable) of the Fabric Extender is 
        used for this binding entry.
        
        Since an extender may connect to a core switch via
        multiple interfaces or fabric ports, it is important all 
        the binding entries configuring the same fabric extender 
        are configured with the same extender Index.  Every 
        interface on different fabric extender connecting into
        the same core switch is differentiated by its extender id. 
        To refer to a port on the extender, an example 
        representation may be extender/slot/port.  Extender id 
        values 1-99 are reserved. For example, reserved values can
        be used to identify the core switch and its line cards in 
        the extender/slot/port naming scheme.
        
        cefexBindingExtenderIndex identifies further attributes
        of a fabric extender via the cefexConfigTable.  A user
        may choose to identify a fabric extender by
        specifying its value of cefexConfigExtendername and/or
        other attributes."
    ::= { cefexBindingEntry 2 }

cefexBindingCreationTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The timestamp of this entry's creation time."
    ::= { cefexBindingEntry 3 }

cefexBindingRowStatus 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."
    ::= { cefexBindingEntry 4 }

cefexConfigTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CefexConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table facilitates configuration applicable
        to an entire fabric extender."
    ::= { cefexConfig 2 }

cefexConfigEntry OBJECT-TYPE
    SYNTAX CefexConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "There is one entry in this table for each fabric
        extender configured on the core switch."
    INDEX { cefexBindingExtenderIndex }
    ::= { cefexConfigTable 1 }

CefexConfigEntry ::= SEQUENCE {
    cefexConfigExtenderName SnmpAdminString,
    cefexConfigSerialNumCheck TruthValue,
    cefexConfigSerialNum SnmpAdminString,
    cefexConfigPinningFailOverMode CiscoPortPinningMode,
    cefexConfigPinningMaxLinks Gauge,
    cefexConfigCreationTime TimeStamp,
    cefexConfigRowStatus RowStatus
    }

cefexConfigExtenderName OBJECT-TYPE
    SYNTAX SnmpAdminString(SIZE(0..32))
--    Rsyntax OCTET STRING(SIZE(0..32))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a human readable string representing
        the name of the 'Extender'. Note that default value of
        this object will be the string 'FEXxxxx' where xxxx is 
        value of cefexBindingExtenderIndex expressed as 4 digits. 
        For example, if cefexBindingExtenderIndex is 123, the 
        default value of this object is 'FEX0123'. This object 
        allows the user to identify the extender with an 
        appropriate name."
    ::= { cefexConfigEntry 1 }

cefexConfigSerialNumCheck OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies if the serial number check is
        enabled for this extender or not.  If the value of this
        object is 'true', then the core switch rejects any 
        extender except for the one with serial
        number string specified by cefexConfigSerialNum.  
        If the value of this object is 'false', then the core 
        switch accept any extender."
    DEFVAL { false }
    ::= { cefexConfigEntry 2 }

cefexConfigSerialNum OBJECT-TYPE
    SYNTAX SnmpAdminString(SIZE(0..32))
--    Rsyntax OCTET STRING(SIZE(0..32))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object allows the user to identify a fabric
        extender's Serial Number String.  This object is
        relevant if cefexBindingSerialNumCheck is true.
        Zero is not a valid length for this object
        if cefexBindingSerialNumCheck is true."
    DEFVAL { "" }
    ::= { cefexConfigEntry 3 }

cefexConfigPinningFailOverMode OBJECT-TYPE
    SYNTAX CiscoPortPinningMode
--    Rsyntax INTEGER {
--        static(1)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object allows the user to identify the
        fabric port failure handling method when pinning 
        is used."
    DEFVAL { static }
    ::= { cefexConfigEntry 4 }

cefexConfigPinningMaxLinks OBJECT-TYPE
    SYNTAX Gauge(1..100)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object allows the user to identify number of
        fabric ports to be used in distribution of pinned
        non fabric ports.  As described above, pinning is the
        forwarding model used for fabric extenders
        that do not support local forwarding.  Traffic
        from a non fabric port is forwarded to one
        fabric port.  Selection of non fabric port pinning
        to fabric ports is distributed as evenly as 
        possible across fabric ports.  This object 
        allows administrator to configure number
        of fabric ports that should be used 
        for pinning non fabric ports."
    DEFVAL { 1 }
    ::= { cefexConfigEntry 5 }

cefexConfigCreationTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The timestamp when the value of the corresponding
        instance of 'cefexConfigRowStatus' is made active.
        If an user modifies objects in this table,
        the new values are immediately activated. 
        Depending on the object changed, an accepted 
        fabric extender may become not acceptable.
        As a result, the fabric extender may be 
        disconnected from the core switch."
    ::= { cefexConfigEntry 6 }

cefexConfigRowStatus 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. A row in this
        table becomes active immediately upon creation."
    ::= { cefexConfigEntry 7 }

cefexBindingConformanceObjects OBJECT IDENTIFIER ::= { cEthernetFabricExtenderMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects related to Fabric Extender binding
--    to core switch.
--  objects
--    cefexBindingExtenderIndex, cefexBindingCreationTime, 
--    cefexBindingRowStatus, cefexConfigExtenderName, 
--    cefexConfigSerialNumCheck, cefexConfigSerialNum, 
--    cefexConfigPinningFailOverMode, cefexConfigPinningMaxLinks, 
--    cefexConfigCreationTime, cefexConfigRowStatus

cEthernetFabricExtenderMIBCompliance OBJECT IDENTIFIER ::= { cEthernetFabricExtenderMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for entities which
--    implement the CISCO-ETHERNET-FABRIC-EXTENDER-MIB mib.
--  Module
--    >>current<<
--   MandGroup
--    cefexBindingConformanceObjects
--   ObjVar
--    cefexBindingExtenderIndex
--   ObjVar
--    cefexBindingRowStatus
--   ObjVar
--    cefexConfigExtenderName
--   ObjVar
--    cefexConfigSerialNum
--   ObjVar
--    cefexConfigPinningFailOverMode
--   ObjVar
--    cefexConfigPinningMaxLinks
--   ObjVar
--    cefexConfigRowStatus
--   ObjVar
--    cefexConfigSerialNumCheck


END

