-- *****************************************************************
-- NMS-FAN-TRAP.MIB: NMS FAN TRAP MIB
--
-- JAN 2010
-- Edit by LIUQIANG
-- Copyright (c) 2010 by NMS, Inc.
-- All rights reserved.
-- *****************************************************************

NMS-FAN-TRAP DEFINITIONS ::= BEGIN




IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, Unsigned32                       FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                          FROM SNMPv2-CONF
    nmsEPONGroup,nmsMgmt                                 FROM NMS-SMI;


               fanTrap         OBJECT IDENTIFIER ::= { nmsMgmt 187 }



    
-- Notifications
          fanStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1), 
                          stop(0),
                          absent(2),
                          otherErr(3)
                          }
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Fan status, 1-normal, 2-stop."
              ::= { fanTrap 1 }

	nmsFanNotifications OBJECT IDENTIFIER
                                ::= { fanTrap 2 }


	nmsFanNotification NOTIFICATION-TYPE
    		OBJECTS {
                       fanStatus
                        }
    		STATUS      current
    		DESCRIPTION
        	"The agent generates this notification when fan stops or resumes .
        	This is the old version of FAN-MIB."
    		::= { nmsFanNotifications 1 }
    		
        fanRunningStatus        OBJECT IDENTIFIER ::= { fanTrap 3 }
    		
        fan1RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3),
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 1 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 1 }
    		
        fan2RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 2 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 2 }
    		
        fan3RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 3 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 3 }
    		
        fan4RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 4 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 4 }
    		
        fan5RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 5 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 5 }
    		
        fan6RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                           othererr(4)
                         }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 6 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 6 }
    		
        fan7RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 7 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 7 }
    		
        fan8RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 8 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 8 }
    		
        fan9RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 9 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 9 }
    		
        fan10RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 10 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 10 }
    		
        fan11RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 11 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 11 }
    		
        fan12RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 12 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 12 }
    		
        fan13RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 13 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 13 }
    		
        fan14RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 14 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 14 }
    		
        fan15RunningStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          normal(1),     
                          stop(2),
                          unused(3)
                          othererr(4)
                          }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Fan 15 status, 1-normal, 2-stop, unused(3)."
              ::= { fanRunningStatus 15 }
    		
--***********************************************************--
          fanTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF FanTableEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of fan-devices entries.
                            This is old version, Updated at 2011."
                   ::= { fanTrap 4 }

               fanTableEntry OBJECT-TYPE
                   SYNTAX  FanTableEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of fan-devices"
                   INDEX { fanIndex }
               ::= { fanTable 1 }

               FanTableEntry ::=
                   SEQUENCE {
                       fanIndexOld
                           INTEGER,
                       fanStatusOld
                           INTEGER,
                       fanSpeedOld
                       	   INTEGER,
                       fanShelfNumOld
                       	   INTEGER
                  }


               fanIndexOld OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Index of fan-device"
                   ::= { fanTableEntry 1 }


               fanStatusOld OBJECT-TYPE
                   SYNTAX  INTEGER{ 
                          normal(1),     
                          stop(2),
                          unused(3)                                    
                                   }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan-device status."
                   ::= { fanTableEntry 2 }



               fanSpeedOld OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan-device speed."
                   ::= { fanTableEntry 3 }
               fanShelfNumOld OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan-device shelf number."
                   ::= { fanTableEntry 4 }
                       
--new definition of fan status and trap updated at 2017-08-21

	nmsFanNewDef OBJECT IDENTIFIER
                                ::= { fanTrap 5 }


          nmsFanTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF NmsFanEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A list of fan-devices entries.
                            This is current version, Updated at 2017-7."
                   ::= { nmsFanNewDef 1 }

              nmsFanEntry OBJECT-TYPE
                   SYNTAX  NmsFanEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                            "A collection of fan-devices."
                   INDEX { deviceIndex, fanCardIndex, fanIndex    }
               ::= { nmsFanTable 1 }

               NmsFanEntry ::=
                   SEQUENCE {
                       deviceIndex
                           INTEGER,
                       fanCardIndex
                           INTEGER,
                       fanIndex
                       	   INTEGER,
                       fanStatus 
                       	   INTEGER,
                       fanPresentStauts  
                       	   INTEGER,
                       fanRPM  
                       	   INTEGER,
                       fanSpeedMode 
                       	   INTEGER
                  }

               deviceIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Index of device."
                   ::= { nmsFanEntry 1 }


               fanCardIndex OBJECT-TYPE
                   SYNTAX  INTEGER
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan card index of the device."
                   ::= { nmsFanEntry 2 }

               fanIndex OBJECT-TYPE
                   SYNTAX  INTEGER                                   
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan card index of the device."
                   ::= { nmsFanEntry 3 }

               fanStatus OBJECT-TYPE
                   SYNTAX  INTEGER{ 
                          normal(1),     
                          stop(2)
                          }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan status."
                   ::= { nmsFanEntry 4 }

               fanPresentStauts OBJECT-TYPE
                   SYNTAX  INTEGER{ 
                          isPresent(1),     
                          notPresent(2)
                          }
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan presents or not."
                   ::= { nmsFanEntry 5 }

               fanRPM OBJECT-TYPE
                   SYNTAX  INTEGER                                   
                   ACCESS  read-only
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan rounds per minute. If fan "
                   ::= { nmsFanEntry 6 }

               fanSpeedMode OBJECT-TYPE
                   SYNTAX  INTEGER{ 
                          high_speed(1),     
                          half_speed(2),
                          low_speed(3)
                          }                                   
                   ACCESS  read-write
                   STATUS  mandatory
                   DESCRIPTION
                           "Fan speed mode. "
                   ::= { nmsFanEntry 7 }


	nmsFanNewNotifications OBJECT IDENTIFIER
                                ::= { nmsFanNewDef 2 }


	nmsFanNewNotification NOTIFICATION-TYPE
    		OBJECTS {
                       deviceIndex,
                       fanCardIndex,
                       fanIndex,
                       fanStatus,
                       fanPresentStauts,
                       fanRPM,
                       fanSpeedMode
                        }
    		STATUS      current
    		DESCRIPTION
        	"The agent generates this notification when fan stops or resumes .
        	This is the new version of FAN-MIB."
    		::= { nmsFanNewNotifications 1 }

              
END
