-- *******************************************************************
-- FS-VXU-MIB.mib: FS VXU MIB file
-- Aug 2013, hedong, liuxi
--
-- Copyright (c) 2013 by FS.COM Inc..
-- All rights reserved.
-- *******************************************************************
--
FS-VXU-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;

fsVxuMIB MODULE-IDENTITY
        LAST-UPDATED "201309040001Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
            " 
        Tel: $Telephone$

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

--********************************************************************
--                                                                  **
--                         VXU objects root                         **
--                                                                  **
--********************************************************************
fsVxuMIBObjects OBJECT IDENTIFIER ::= { fsVxuMIB 1 }

--***************** the VXU device nodes *********************
fsVxuDeviceInfo OBJECT IDENTIFIER ::= { fsVxuMIBObjects 1 }

fsVxuDeviceTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  FSVxuDeviceEntry
        MAX-ACCESS          not-accessible 
        STATUS              current         
        DESCRIPTION     
            "The whole device information in VXU system"
    ::= { fsVxuDeviceInfo 1 }

fsVxuDeviceEntry OBJECT-TYPE
        SYNTAX      FSVxuDeviceEntry 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The device information entry"
        INDEX       { fsVxuDeviceID }
    ::= { fsVxuDeviceTable 1 }

FSVxuDeviceEntry ::=
        SEQUENCE {
            fsVxuDeviceID           INTEGER,   
            fsVxuDeviceMac          MacAddress,
            fsVxuDeviceDescr        DisplayString,
            fsVxuDeviceRole         INTEGER
        }

fsVxuDeviceID OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU system member device identifier"
    ::= { fsVxuDeviceEntry 1 }

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

fsVxuDeviceDescr OBJECT-TYPE
        SYNTAX      DisplayString 
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The VXU system member device description information"
    ::= { fsVxuDeviceEntry 3 }

fsVxuDeviceRole OBJECT-TYPE
        SYNTAX      INTEGER {
                        master(1),
                        slaver(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU system member device role information"
    ::= { fsVxuDeviceEntry 4 }

--***************** the VXU VXL nodes *********************
fsVxuVxl OBJECT IDENTIFIER ::= { fsVxuMIBObjects 2 }
    
fsVxuVxlTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  FSVxuVxlEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VXU VXL AP table"
    ::= { fsVxuVxl 1 }

fsVxuVxlEntry OBJECT-TYPE
        SYNTAX      FSVxuVxlEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VXU VXL AP entry"
        INDEX       { fsVxuChildDeviceID } 
    ::= { fsVxuVxlTable 1 }

FSVxuVxlEntry ::=
        SEQUENCE {   
            fsVxuChildDeviceID          INTEGER,     
            fsVxuFatherDeviceID         INTEGER,
            fsVxuFatherVxlIndex         INTEGER,
            fsVxuVxlMode                INTEGER
        }  
        
fsVxuChildDeviceID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The child node device identifier"
    ::= { fsVxuVxlEntry 1 }

fsVxuFatherDeviceID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The identifier of the father node of the child node"
    ::= { fsVxuVxlEntry 2 }
    
fsVxuFatherVxlIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU VXL AP index of the father node"
    ::= { fsVxuVxlEntry 3 }        
    
fsVxuVxlMode OBJECT-TYPE
        SYNTAX      INTEGER {
                        static(1),
                        dynamic(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The working mode of VXL AP"
    ::= { fsVxuVxlEntry 4 }    

fsVxuVxlPortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  FSVxuVxlPortEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VXU VXL port members table"
    ::= { fsVxuVxl 2 }

fsVxuVxlPortEntry OBJECT-TYPE
        SYNTAX      FSVxuVxlPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VXU VXL port members entry"
        INDEX       { fsVxuVxlDeviceID, fsVxuVxlIndex, fsVxuVxlPortIndex } 
    ::= { fsVxuVxlPortTable 1 }

FSVxuVxlPortEntry ::=
        SEQUENCE {
        	fsVxuVxlDeviceID         INTEGER,
        	fsVxuVxlIndex            INTEGER,
        	fsVxuVxlPortIndex        INTEGER,
        	fsVxuVxlPortMode         INTEGER,
        	fsVxuVxlPortDeviceID     INTEGER,
        	fsVxuVxlPortSlotID       INTEGER,
        	fsVxuVxlPortID     	     INTEGER,
        	fsVxuVxlPortPeerDeviceID INTEGER,
        	fsVxuVxlPortPeerSlotID   INTEGER,
        	fsVxuVxlPortPeerID       INTEGER
        }

fsVxuVxlDeviceID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU Device id"
    ::= { fsVxuVxlPortEntry 1 }
    
fsVxuVxlIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXL AP id"
    ::= { fsVxuVxlPortEntry 2 }
    
fsVxuVxlPortIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXL Port id"
    ::= { fsVxuVxlPortEntry 3 } 
    
fsVxuVxlPortMode OBJECT-TYPE
        SYNTAX      INTEGER {
                        static(1),
                        dynamic(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXL Port mode"
    ::= { fsVxuVxlPortEntry 4 }       

fsVxuVxlPortDeviceID OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The device id of local VXL Port"
    ::= { fsVxuVxlPortEntry 5 }   

fsVxuVxlPortSlotID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The slot id of local VXL Port"
    ::= { fsVxuVxlPortEntry 6 }

fsVxuVxlPortID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The port id of local VXL Port"
    ::= { fsVxuVxlPortEntry 7 }

fsVxuVxlPortPeerDeviceID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The device id of peer VXL Port"
    ::= { fsVxuVxlPortEntry 8 }

fsVxuVxlPortPeerSlotID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The slot id of peer VXL Port"
    ::= { fsVxuVxlPortEntry 9 }
    
fsVxuVxlPortPeerID OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The port id of peer VXL Port"
    ::= { fsVxuVxlPortEntry 10 }

--***************** the VXU Location nodes *********************
fsVxuLocation OBJECT IDENTIFIER ::= { fsVxuMIBObjects 3 }

fsVxuLocationTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  FSVxuLocationEntry
        MAX-ACCESS          not-accessible 
        STATUS              current         
        DESCRIPTION     
            "Locate device in VXU system"
    ::= { fsVxuLocation 1 }

fsVxuLocationEntry OBJECT-TYPE
        SYNTAX      FSVxuLocationEntry 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The device information entry"
        INDEX       { fsVxuLocationDeviceID, fsVxuLocationSlotID }
    ::= { fsVxuLocationTable 1 }

FSVxuLocationEntry ::=
        SEQUENCE {
            fsVxuLocationDeviceID      INTEGER,   
            fsVxuLocationSlotID        INTEGER,
            fsVxuLocationSet           INTEGER
        }

fsVxuLocationDeviceID OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU system member device identifier"
    ::= { fsVxuLocationEntry 1 }
    
fsVxuLocationSlotID OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU system slot identifier"
    ::= { fsVxuLocationEntry 2 }
    
fsVxuLocationSet OBJECT-TYPE
        SYNTAX      INTEGER {
                        light(1)
                    } 
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Light the LED of object device"
    ::= { fsVxuLocationEntry 3 }

--******************* the VXU Version nodes *********************
fsVxuVersion OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VXU system version"
    ::= { fsVxuMIBObjects 4 }

--********************************************************************
--                                                                  **
--                          traps nodes                             **
--                                                                  **
--********************************************************************
fsVxuMIBTraps OBJECT IDENTIFIER ::= { fsVxuMIB 2 }
fsVxuTrapsNtfObjects OBJECT IDENTIFIER ::= { fsVxuMIBTraps 1 } 

fsVxuDeviceState OBJECT-TYPE    
        SYNTAX      INTEGER {
                        online(1),
                        offline(2)
                    }
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The description of device state change"
    ::= { fsVxuTrapsNtfObjects 1 }
    
fsVxuVxlState OBJECT-TYPE    
        SYNTAX      INTEGER {
                        vxl(1),
                        normal(2)
                    }
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The description of VXL port state change"
    ::= { fsVxuTrapsNtfObjects 2 }    

fsVxuTrapsNotifications OBJECT IDENTIFIER ::= { fsVxuMIBTraps 2 }
    
fsVxuNotifyDeviceChange NOTIFICATION-TYPE
        OBJECTS     {
                        fsVxuLocationDeviceID,
                        fsVxuLocationSlotID,
                        fsVxuDeviceState
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VXU master when device plugin or remove"
    ::= { fsVxuTrapsNotifications 1 }

fsVxuNotifyVxlChange NOTIFICATION-TYPE
        OBJECTS     {
                        fsVxuVxlPortDeviceID,
                        fsVxuVxlPortSlotID,
                        fsVxuVxlPortID,
                        fsVxuVxlState
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VXU master when VXL Port change"
    ::= { fsVxuTrapsNotifications 2 }       

END

