-- SAFEGUARD ENGINE mib 
-- *****************************************************************************
-- Ver 1.1 
-- change CPU PROTECTION to SAFEGUARD ENGINE
-- change the mib file name from CpuProtection.mib to SafeGuard.mib
-- *****************************************************************************
-- Draft Ver 1.0
-- 2005/9/13 04:04
-- remove ArpStormCtrl subtree and notify objects for ArpStorm.
-- add swCpuProtectmode object.
-- *****************************************************************************
-- Draft Ver 0.9 
-- 2005/2/1  
-- by Chrissy
-- *****************************************************************************

	SAFEGUARD-ENGINE-MIB DEFINITIONS ::= BEGIN
		
	IMPORTS
	          
	          MODULE-IDENTITY, OBJECT-TYPE      	FROM SNMPv2-SMI
	          TruthValue                        			FROM SNMPv2-TC
	          MODULE-COMPLIANCE, OBJECT-GROUP, 
	          NOTIFICATION-GROUP				FROM SNMPv2-CONF
	          dlink-common-mgmt					FROM DLINK-ID-REC-MIB;
			
	swSafeGuardMIB MODULE-IDENTITY
	    LAST-UPDATED "200601160000Z"
	    ORGANIZATION " "
	    CONTACT-INFO
	        " "
	    DESCRIPTION
		    "The MIB module for managing CPU protection."
           ::= { dlink-common-mgmt 19 }
        
     

  	swSafeGuardGblMgmt    OBJECT IDENTIFIER ::= { swSafeGuardMIB 1 } 
	swSafeGuardctrl       OBJECT IDENTIFIER ::= { swSafeGuardMIB 2 }
--	swArpStormCtrl        OBJECT IDENTIFIER ::= { swSafeGuardMIB 3 }
	swSafeGuardNotify     OBJECT IDENTIFIER ::= { swSafeGuardMIB 4 }

--***************************************************************************
--	swSafeGuardMgmt
--***************************************************************************	
	
	swSafeGuardAdminState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the Safe Guard state of the switch."
        ::= { swSafeGuardGblMgmt 1 }	
	

	

    
--***************************************************************************
--	swSafeGuardctrl
--***************************************************************************    
	swSafeGuardRisingThreshold	OBJECT-TYPE
		SYNTAX  INTEGER (20..100)
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION	
			"The object indicates CPU protection rising threshold in percentage.
			 the range is between 20%-100% , if the CPU utilization is over the
			 rising threshold, the switch enters exhausted mode."
		::= { swSafeGuardctrl 1 }
		
	swSafeGuardFallingThreshold	OBJECT-TYPE
		SYNTAX  INTEGER (20..100)
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION	
			"The object indicates CPU protection falling threshold in percentage.
			the range is between 20%-100% , if the CPU utilization is lower than
			the falling threshold, the switch enters normal mode."
		::= { swSafeGuardctrl 2 }
	    
	swSafeGuardmode OBJECT-TYPE
        	SYNTAX  INTEGER {
               	strict(1),
               	fuzzy(2)
               	}
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		"determine the controlling method of broadcast traffic.
            		Here are two modes (strict and fuzzy). In strict, 
            		the Switch will stop receiving all 'ARP not to me' packets (the protocol
            		address of target in ARP packet is the Switch itself). That means no matter
            		what reasons cause the high CPU utilization (may not caused by ARP storm), 
            		the Switch reluctantly processes any 'ARP not to me' packets in exhausted mode.
            		In fuzzy mode, the Switch will adjust the bandwidth dynamically depend on some
            		reasonable algorithm."
        	::= { swSafeGuardctrl 3 }	
		
	swSafeGuardAlarmAdminState OBJECT-TYPE
        	SYNTAX  INTEGER {
               	other(1),
               	disabled(2),
               	enabled(3)
               	}
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		"This object indicates  the state of cpu protection related trap/log 
            		mechanism (enable or disable). If set to enable, trap and log will be 
            		active while cpu protection current mode changed.If set to disable,
            		current mode change will not trigger trap and log events."
        	::= { swSafeGuardctrl 4 }		
        	
	swSafeGuardCurrentStatus OBJECT-TYPE
        	SYNTAX  INTEGER {
               	normal(1),
               	exhausted(2)
               	}
        	MAX-ACCESS  read-only
        	STATUS  current
        	DESCRIPTION
            		"This object indicates current operation mode of Safe Guard "
        	::= { swSafeGuardctrl 5 }				
		
  	swSafeGuardInterval  OBJECT-TYPE
        	SYNTAX  INTEGER (0..65535)
        	MAX-ACCESS  read-only
        	STATUS      current
        	DESCRIPTION  
            		"The object indicates CPU utilization monitor interval in seconds.
             		The range is between 5 to 10, default value is 5."
        	::= { swSafeGuardctrl 6 }
        	
-- *****************************************************************************
		

	swSafeGuardNotification   OBJECT IDENTIFIER ::= { swSafeGuardNotify 1 }     
	
	
-- *****************************************************************************
	swSafeGuardNotifyPrefix 	 OBJECT IDENTIFIER ::= { swSafeGuardNotification 0 } 	
	
    swSafeGuardChgToExhausted NOTIFICATION-TYPE
        OBJECTS         { 
   						swSafeGuardCurrentStatus
                        }
        STATUS          current
        DESCRIPTION     "This trap indicates System change operation mode from normal to exhausted."
        ::= { swSafeGuardNotifyPrefix 1 }        

    swSafeGuardChgToNormal NOTIFICATION-TYPE
        OBJECTS         { 
   						swSafeGuardCurrentStatus
                        }
        STATUS          current
        DESCRIPTION     "This trap indicates System change operation mode from exhausted to normal."
        ::= { swSafeGuardNotifyPrefix 2 }          
        


END
				
		
		
