-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-ERR-DISABLE-MIB.mib
-- Revision 1.9  2015/02/16 

ZYXEL-ERR-DISABLE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	EnabledStatus
		FROM  P-BRIDGE-MIB

	NOTIFICATION-TYPE
		FROM SNMPv2-SMI

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelErrdisable MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for errdisable"
		::= { esMgmt 24 }
			
	zyxelErrdisableSetup     		OBJECT IDENTIFIER ::= { zyxelErrdisable 1 } 		
	zyxelErrdisableStatus     		OBJECT IDENTIFIER ::= { zyxelErrdisable 2 }
	zyxelErrdisableTrapInfoObject 	OBJECT IDENTIFIER ::= { zyxelErrdisable 3 }
	zyxelErrdisableNotifications	OBJECT IDENTIFIER ::= { zyxelErrdisable 4 }
	
-- ******************************************************************
-- *
-- 24. errdisable
-- *
-- ****************************************************************** 

	zyxelErrdisableRecovery             OBJECT IDENTIFIER ::= { zyxelErrdisableSetup 1 }
	
	    zyErrdisableRecoveryState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable error disabled port recovery feature on the switch. Some features, 
		 such as loop guard, allow the switch to shut down a port when an error is detected on the port. 
		 For example, if the switch detects that packets sent out the port(s) loop back to the switch,
		 the switch can shut down the port(s) automatically. After that, you need to enable the port(s) manually. 
		 With disabled port recovery, you can set the disabled port(s) to become active again after the time interval you specify."
        ::= { zyxelErrdisableRecovery 1 }

--zyxelErrdisableRecoveryReasonTable
	zyxelErrdisableRecoveryReasonTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelErrdisableRecoveryReasonEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains errdisable recovery reason configuration."
        ::= { zyxelErrdisableRecovery 2 }
        
	zyxelErrdisableRecoveryReasonEntry OBJECT-TYPE
        SYNTAX	ZyxelErrdisableRecoveryReasonEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains errdisable recovery reason configuration."
        INDEX          	{ zyErrdisableRecoveryReasonType }
        ::= { zyxelErrdisableRecoveryReasonTable 1 }

        ZyxelErrdisableRecoveryReasonEntry ::=
           SEQUENCE {
        	zyErrdisableRecoveryReasonType		INTEGER,
        	zyErrdisableRecoveryReasonState		EnabledStatus,
			zyErrdisableRecoveryReasonInterval	INTEGER       	
           }

        zyErrdisableRecoveryReasonType OBJECT-TYPE
        SYNTAX  INTEGER {
        		loopGuard(0), 
        		arp(1),
        		bpdu(2),
				igmp(3),
				antiArpScan(4),
				bpduGuard(5),
				zuld(6)
        }
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"This entry displays the supported features that allow the switch to shut down 
		 a port or discard packets on a port according to the feature requirements and 
		 what action you configure."
        ::= { zyxelErrdisableRecoveryReasonEntry 1 }

        zyErrdisableRecoveryReasonState OBJECT-TYPE
        SYNTAX  EnabledStatus        		
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable this entry to allow/prohibit the switch to activate a port 
		 after the specified time interval, which is shut down by the supported feature."
        ::= { zyxelErrdisableRecoveryReasonEntry 2 }

        zyErrdisableRecoveryReasonInterval OBJECT-TYPE
        SYNTAX  INTEGER (30..2592000)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enter the number of seconds (from 30 to 2592000) for the switch to wait before 
		 enabling the port which was shut down."
        ::= { zyxelErrdisableRecoveryReasonEntry 3 }

		zyxelErrdisableDetect	OBJECT IDENTIFIER ::= { zyxelErrdisableSetup 2 }       
	                                        

	    zyxelErrdisableDetectReasonTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF  ZyxelErrdisableDetectReasonEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains errdisable detect reason configuration."
        ::= { zyxelErrdisableDetect 1 }  	 
        
       	zyxelErrdisableDetectReasonEntry OBJECT-TYPE
        SYNTAX	ZyxelErrdisableDetectReasonEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains errdisable detect reason configuration."
        INDEX          	{ zyErrdisableDetectReasonType }
        ::= { zyxelErrdisableDetectReasonTable 1 }          
        
        ZyxelErrdisableDetectReasonEntry ::=
		SEQUENCE {
        	zyErrdisableDetectReasonType    INTEGER,
        	zyErrdisableDetectReasonState	EnabledStatus,
        	zyErrdisableDetectReasonMode	INTEGER
         }        
         
        zyErrdisableDetectReasonType OBJECT-TYPE
        SYNTAX  INTEGER{
        	arp(1),
        	bpdu(2),
			igmp(3)
       	}
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"This field displays the type of control packets that may cause CPU overload."
        ::= { zyxelErrdisableDetectReasonEntry 1 }
  
        zyErrdisableDetectReasonState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable the detection on switch to monitor if the configured rate limit for a specific 
		 control packet is exceeded and take the mode selected below."
        ::= { zyxelErrdisableDetectReasonEntry 2 }

        zyErrdisableDetectReasonMode OBJECT-TYPE
        SYNTAX  INTEGER{
        	inactivePort(1),
        	inactiveReason(2),
			rateLimitation(3)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Select the mode that the switch takes when the number of control packets exceeds the rate limit on a port, set in the CPU protection.
		 inactivePort - The switch disables the port on which the control packets are received.
		 inactiveReason - The switch bypasses the processing of the specified control packets (such as ARP or IGMP packets), or drops all the specified control packets (such as BPDU) on the port.
		 rateLimitation - The switch drops the additional control packets the port has to handle in every one second."
        ::= { zyxelErrdisableDetectReasonEntry 3 }
                                                                    		   
 
--zyxelErrdisableRecoveryIfStatusTable
	zyxelErrdisableRecoveryTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelErrdisableRecoveryEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains errdisable recovery information."
        ::= { zyxelErrdisableStatus 1 }     
   
	zyxelErrdisableRecoveryEntry OBJECT-TYPE
        SYNTAX	ZyxelErrdisableRecoveryEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        "An entry contains errdisable recovery information."
        INDEX          	{ zyErrdisableRecoveryType,zyErrdisableRecoveryPort }
        ::= { zyxelErrdisableRecoveryTable 1 }

        ZyxelErrdisableRecoveryEntry ::=
           SEQUENCE {
        	zyErrdisableRecoveryType			INTEGER,
        	zyErrdisableRecoveryPort	    	INTEGER,
			zyErrdisableRecoveryTimeToRecover	INTEGER       	
           }

        zyErrdisableRecoveryType OBJECT-TYPE
        SYNTAX  INTEGER {
        	loopGuard(0),    
        	arp(1),
        	bpdu(2),
			igmp(3),
			antiArpScan(4),
			bpduGuard(5),
			zuld(6)
        }
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"This field displays the supported features that allow the switch to shut down a port or 
		 discard packets on a port according to the feature requirements and what action you configure."
        ::= { zyxelErrdisableRecoveryEntry 1 }

        zyErrdisableRecoveryPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"This field displays which port(s) are shut down or discard packets by above reason."
        ::= { zyxelErrdisableRecoveryEntry 2 }

        zyErrdisableRecoveryTimeToRecover OBJECT-TYPE
        SYNTAX  INTEGER (30..2592000)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"This field displays how long (seconds) those ports will be re-activated."
        ::= { zyxelErrdisableRecoveryEntry 3 }            

-- 3. zyxelErrdisableTrapInfoObject		
		
		zyErrdisableTrapPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS   read-only
        STATUS  current
        DESCRIPTION
		"This trap displays error disable detect on which port(s) by reason below."             
        ::= { zyxelErrdisableTrapInfoObject 1 }     

    zyErrdisableTrapReasonType OBJECT-TYPE
        SYNTAX  INTEGER
        {
        	loopGuard(0),
			arp(1),
			bpdu(2),
			igmp(3),
			antiArpScan(4),
			bpduGuard(5),
			zuld(6)
        }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"This trap displays which port(s) are shut down or discard packets by mode below."             
        ::= { zyxelErrdisableTrapInfoObject 2 }     
        

	zyErrdisableTrapMode  OBJECT-TYPE
        SYNTAX  INTEGER
        {
        	inactivePort(0),
        	inactiveReason(1),
        	rateLimitation(2)
        }
        MAX-ACCESS   read-only
        STATUS  current
        DESCRIPTION
		"This trap displays which error disable mode on this port."             
        ::= { zyxelErrdisableTrapInfoObject 3 }        
              
	   
--	4.	zyxelErrdisableNotifications
	     zyErrdisableDetect NOTIFICATION-TYPE
         OBJECTS {
               zyErrdisableTrapPort,
               zyErrdisableTrapReasonType,
               zyErrdisableTrapMode
         }
         STATUS  current
         DESCRIPTION
		 "The trap is sent when an error is detected on a port, such as a loop occurs or the rate limit for 
		  specific control packets is exceeded."
		   
		  ::= { zyxelErrdisableNotifications 1 }
      
         zyErrdisableRecovery NOTIFICATION-TYPE
         OBJECTS {
               zyErrdisableTrapPort,
               zyErrdisableTrapReasonType,
               zyErrdisableTrapMode
         }
         STATUS  current
         DESCRIPTION
		 "This trap is sent when the switch ceases the action taken on a port, such as shutting down 
		  the port or discarding packets on the port, after the specified recovery interval."
		  ::= { zyxelErrdisableNotifications 2 }              
		   
		   
END

