-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fssisp.mib,v 1.3 2012/09/07 09:52:06 siva Exp $

--    SISP Proprietary MIB Definition
--    This MIB defines the configurations for the 
--    SISP (Switch Instance Shared Port) feature.

SUPERMICRO-SISP-MIB DEFINITIONS ::= BEGIN

IMPORTS

    OBJECT-TYPE,MODULE-IDENTITY, Integer32, Unsigned32,
    enterprises                         FROM SNMPv2-SMI
    InterfaceIndex,InterfaceIndexOrZero FROM IF-MIB
    VlanId                              FROM SUPERMICROQ-BRIDGE-MIB
    RowStatus                           FROM SNMPv2-TC;

fssisp  MODULE-IDENTITY
        LAST-UPDATED "201209050000Z"
        ORGANIZATION "Super Micro Computer Inc."
        CONTACT-INFO "support@Supermicro.com"
	DESCRIPTION
            "The proprietary MIB module for SISP. SISP functionality
             is supported only for customer and 802.1ad Provider Bridges."
	REVISION "201209050000Z"	
        DESCRIPTION
            "The proprietary MIB module for SISP. SISP functionality
             is supported only for customer and 802.1ad Provider Bridges."
             
    ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) extended(2) 20}

-- ****************************************************************************
--                           Groups in the MIB
-- ****************************************************************************

     fsSispSystemGroup           OBJECT IDENTIFIER ::= { fssisp 1 }
     fsSispConfig                OBJECT IDENTIFIER ::= { fssisp 2 }
     fsSispInfo                  OBJECT IDENTIFIER ::= { fssisp 3 }

-- ****************************************************************************
--                           System Group Objects in the MIB
-- ****************************************************************************
    fsSispSystemControl OBJECT-TYPE
        SYNTAX      INTEGER { start(1), shutdown(2) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object is used to start or shutdown the SISP feature globally
             in the device. "
        DEFVAL  { shutdown }
        ::= { fsSispSystemGroup 1 }

-- ****************************************************************************
--                        SISP Configurations Group
-- ****************************************************************************

    fsSispPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FsSispPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           "This table is used to maintain Port specific configuration 
           information related to Switch Instance Shared Port feature."
         ::= { fsSispConfig 1 }
    
    fsSispPortEntry OBJECT-TYPE
         SYNTAX      FsSispPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           "Each entry in this table specifies SISP port configuration for 
            a Physical Port or a PortChannel Interface. "
            INDEX { fsSispPortIndex }
         ::= { fsSispPortTable 1 }
    
    FsSispPortEntry ::= SEQUENCE {
         fsSispPortIndex       InterfaceIndex,
         fsSispPortCtrlStatus  INTEGER
    }
    
    fsSispPortIndex  OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
            "Identifies the Physical interface or PortChannel interface for 
             which this SISP configuration is applicable."
         ::= { fsSispPortEntry 1 }

    fsSispPortCtrlStatus  OBJECT-TYPE
         SYNTAX      INTEGER { enabled (1), disabled (2) }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
            "This object is used to enable or disable the 'Switch Instance 
             Shared Port' feature on this interface. A Physical port can be
             mapped to the secondary context(s), only if SISP is enabled on
             that port. SISP can't be disabled on a port, if there are any
             logical ports associated with that physical port."
         DEFVAL  { disabled }
         ::= { fsSispPortEntry 2 }

-- ****************************************************************************
--         Secondary context(s) Mapping Table for the SISP interfaces
-- ****************************************************************************

    fsSispPortMapTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FsSispPortMapEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           "This table is used to map a physical port or Port Channel port 
            to one or more secondary contexts and assign a logical interface 
            index to this association."
         ::= { fsSispConfig 2 }
    
    fsSispPortMapEntry OBJECT-TYPE
         SYNTAX      FsSispPortMapEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           "Each entry in this table is applicable to a physical interface or 
            port channel interface, which is intended to be mapped to a 
            secondary context." 
            INDEX { fsSispPortIndex, fsSispPortMapContextId }
         ::= { fsSispPortMapTable 1 }
    
    FsSispPortMapEntry ::= SEQUENCE {
         fsSispPortMapContextId   Integer32,
         fsSispPortMapSharedPort  InterfaceIndex,
         fsSispPortMapHlPortId    InterfaceIndexOrZero,
         fsSispPortMapRowStatus   RowStatus
    }

    fsSispPortMapContextId  OBJECT-TYPE
         SYNTAX      Integer32 (0..65535)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
            "The secondary context to which the physical interface
             or port channel interface is to be mapped to."
         ::= { fsSispPortMapEntry 1 }
    
    fsSispPortMapSharedPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Configures the shared logical instance Id for the physical 
             interface / port channel interface in this secondary context. 
             (ie) Assigns a Logical Interface Index for the 
             association {fsSispPortIndex, fsSispPortMapContextId}"
        ::= { fsSispPortMapEntry 2 }
    
    fsSispPortMapHlPortId   OBJECT-TYPE
       SYNTAX      InterfaceIndexOrZero
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The port index generated internally for the logical interface
           fsSispPortMapSharedPort. This port index is unique within a virtual
           context."
       ::= { fsSispPortMapEntry 3 }
    
    fsSispPortMapRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The row status of the SISP Port Mapping table. 
            Whereas setting the values as CREATE_AND_GO and NOT_IN_SERVICE are 
            not permitted.
           
            The Row Status cannot be made as ACTIVE until a valid Interface 
            Index is configured for fsSispPortMapSharedPort.

            Though the initial assignment for  fsSispPortMapSharedPort is 
            allowed, the modification of the same is not permitted.
            If the assigned value of the Shared Port for {fsSispPortIndex, 
            fsSispPortMapContextId} has to be modified, the entry has to be 
            deleted and re-created. Then a new value for the 
            fsSispPortMapSharedPort can be assigned."

       ::= { fsSispPortMapEntry 4 }

-- ****************************************************************************
--                          Context Classification Table
-- ****************************************************************************

    fsSispCxtClassificationTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FsSispCxtClassificationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           " This table is a read-only table having mapping of {Physical/Port 
             Channel port , VLAN ID} to a Virtual Context.  This table is 
             populated based on Sisp Port Map Table configuration and  Vlan 
             membership configuration. On the SISP enabled interfaces, incoming
             packets will be associated to a context based on the VLAN ID 
             received in the packet as displayed in this table. This table will
             have entries only for SISP enabled interfaces."
         ::= { fsSispInfo 1 }
    
    fsSispCxtClassificationEntry OBJECT-TYPE
         SYNTAX      FsSispCxtClassificationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
           "Each entry contains mapping of a (Port/Portchannel interface , 
            VLAN ID) to a Virtual Context"
         INDEX { fsSispPortIndex, fsSispCxtClassificationVlanId }
         ::= { fsSispCxtClassificationTable 1 }
    
    FsSispCxtClassificationEntry ::= SEQUENCE {
         fsSispCxtClassificationVlanId           VlanId,
         fsSispCxtClassificationCxtId            Integer32
    }

    fsSispCxtClassificationVlanId  OBJECT-TYPE
         SYNTAX      VlanId
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
          "Vlan Identifier to which the port is a member of, in the context.The
           Vlan in the incoming packet on a particular interface identified by
           fsSispPortIndex is compared against the Vlan identifier indicated by
           this object in order to determine the virtual context identified by 
           fsSispCxtClassificationCxtId where the packet has to be processed."
         ::= { fsSispCxtClassificationEntry 1 }

    fsSispCxtClassificationCxtId  OBJECT-TYPE
         SYNTAX      Integer32 (0..65535)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
          "The Virtual context in which the port is a member of the VLAN 
           - fsSispCxtClassificationVlanId. When a packet on a port identified
           by fsSispPortIndex is received for a VLAN with VID as 
           fsSispCxtClassificationVlanId, then the packet is processed by the 
           corresponding virtual context indicated by this object."
         ::= { fsSispCxtClassificationEntry 2 }

END
