-- *******************************************************************
-- FS-VSF-MIB.mib: FS VSF MIB file
-- June 2015, lishengcao
--
-- Copyright (c) 2015 by FS.COM Inc..
-- All rights reserved.
-- *******************************************************************
--
FS-VSF-MIB DEFINITIONS ::= BEGIN

IMPORTS
        OBJECT-TYPE,
        MODULE-IDENTITY,
        IpAddress,
        NOTIFICATION-TYPE
                FROM SNMPv2-SMI
        Gauge
                FROM RFC1155-SMI
        MacAddress,
        DisplayString
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        NOTIFICATION-GROUP,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        fsMgmt
                FROM FS-SMI;

fsVsfMIB MODULE-IDENTITY
        LAST-UPDATED "201506010000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
            " 
        Tel: $Telephone$

        E-mail: $E-mail$"
        DESCRIPTION
            "This module defines VSF management mibs."
        REVISION "201506010000Z"
        DESCRIPTION
            "Initial version of this MIB module."
    ::= { fsMgmt 140 }

--********************************************************************
--                                                                  **
--                         VSF objects root                         **
--                                                                  **
--********************************************************************
fsVsfMIBObjects OBJECT IDENTIFIER ::= { fsVsfMIB 1 }


--***************** the VSF device nodes *********************
fsVsfDeviceInfo OBJECT IDENTIFIER ::= { fsVsfMIBObjects 1 }

fsVsfDeviceTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  FSVsfDeviceEntry
        MAX-ACCESS          not-accessible 
        STATUS              current         
        DESCRIPTION     
            "The whole device information in VSF system"
    ::= { fsVsfDeviceInfo 1 }

fsVsfDeviceEntry OBJECT-TYPE
        SYNTAX      FSVsfDeviceEntry 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The device information entry"
        INDEX       { fsVsfDeviceID }
    ::= { fsVsfDeviceTable 1 }

FSVsfDeviceEntry ::=
        SEQUENCE {
            fsVsfDeviceID           INTEGER,   
            fsVsfDeviceMac          MacAddress,
            fsVsfDeviceDescr        DisplayString,
            fsVsfDeviceStatus       INTEGER
        }

fsVsfDeviceID OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF system member device identifier"
    ::= { fsVsfDeviceEntry 1 }

fsVsfDeviceMac OBJECT-TYPE
        SYNTAX      MacAddress 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF system member device mac address"
    ::= { fsVsfDeviceEntry 2 }

fsVsfDeviceDescr OBJECT-TYPE
        SYNTAX      DisplayString 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF system member device description information"
    ::= { fsVsfDeviceEntry 3 }

fsVsfDeviceStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        ok(1),
                        recovery(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF system member device status information"
    ::= { fsVsfDeviceEntry 4 }

--***************** the VSF PORT nodes *********************
fsVsf OBJECT IDENTIFIER ::= { fsVsfMIBObjects 2 }

fsVsfPortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  FSVsfPortEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VSF port members table"
    ::= { fsVsf 1 }

fsVsfPortEntry OBJECT-TYPE
        SYNTAX      FSVsfPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSF port members entry"
        INDEX       { fsVsfPortIfIndex } 
    ::= { fsVsfPortTable 1 }

FSVsfPortEntry ::=
        SEQUENCE {
            fsVsfPortIfIndex     INTEGER,       
            fsVsfApIf            DisplayString,
            fsVsfPortState       INTEGER,
            fsVsfPortPeerIfIndex INTEGER
        }

fsVsfPortIfIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF  port index"
    ::= { fsVsfPortEntry 1 }
    
fsVsfApIf OBJECT-TYPE    
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF  port ap"
    ::= { fsVsfPortEntry 2 }

fsVsfPortState OBJECT-TYPE
        SYNTAX      INTEGER {
                        down(1),        
                        up(2),
                        ok(3),
                        disable(4),
                        aged(5)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF  port's state"
    ::= { fsVsfPortEntry 3 }

fsVsfPortPeerIfIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF  port's peer port index"
    ::= { fsVsfPortEntry 4 }
    
fsVsfApTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  FSVsfApEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VSF AP table"
    ::= { fsVsf 2 }

fsVsfApEntry OBJECT-TYPE
        SYNTAX      FSVsfApEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSF AP entry"
        INDEX       { fsVsfApIndex } 
    ::= { fsVsfApTable 1 }

FSVsfApEntry ::=
        SEQUENCE {   
            fsVsfApIndex         INTEGER,
            fsVsfApUptime        DisplayString
        }
    
fsVsfApIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF AP index"
    ::= { fsVsfApEntry 1 }

fsVsfApUptime OBJECT-TYPE    
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSF AP UP time"
    ::= { fsVsfApEntry 2 }
    
--********************************************************************
--                                                                  **
--                conformance information                           **
--                                                                  **
--********************************************************************
fsVsfMIBConformance OBJECT IDENTIFIER ::= { fsVsfMIB 3}
fsVsfMIBCompliances OBJECT IDENTIFIER ::= { fsVsfMIBConformance 1}
fsVsfMIBGroups OBJECT IDENTIFIER ::= { fsVsfMIBConformance 2}   

--***************** compliance information ********************
fsVsfMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for entities which implement the FS VSF"
        MODULE 
            MANDATORY-GROUPS { fsVsfMIBObjectsGroup }  
    ::= { fsVsfMIBCompliances 1 }

--***************** units of conformance ********************
fsVsfMIBObjectsGroup OBJECT-GROUP
        OBJECTS {
            fsVsfDeviceID,
            fsVsfDeviceMac,
            fsVsfDeviceDescr,
            fsVsfDeviceStatus,
            fsVsfPortIfIndex,
            fsVsfApIf,
            fsVsfPortState,
            fsVsfPortPeerIfIndex,
            fsVsfApIndex,
            fsVsfApUptime
        }
        STATUS  current
        DESCRIPTION
            "A collection of objects providing VSF running status to a FS agent"
    ::= { fsVsfMIBGroups 1 } 

END

