--  *****************************************************************
--  DLINKPRIME-DOS-PREVENT-MIB.mib : DoS (Denial of Service) Prevention MIB
-- 
--  Copyright (c) 2014 D-Link Corporation, all rights reserved.
--   
--  *****************************************************************

    DLINKPRIME-DOS-PREVENT-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        TEXTUAL-CONVENTION
            FROM SNMPv2-TC
        MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,Counter64,IpAddress
            FROM SNMPv2-SMI
        TruthValue
            FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF   
        InterfaceIndexOrZero
            FROM IF-MIB
        dlinkPrimeCommon
            FROM DLINK-ID-REC-MIB;  

    dlinkPrimeDosPrevMIB MODULE-IDENTITY
		LAST-UPDATED "201404260000Z"
        ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "        D-Link Corporation

             Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                     Taipei City 114, Taiwan, R.O.C
             Tel:     +886-2-66000123
             E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
           "This MIB contains managed objects for the DOS Protection 
            application of the device."
	    REVISION        "201404260000Z"
        DESCRIPTION
            "Initial version of this MIB module."
        ::= { dlinkPrimeCommon 4 }

--
-- Textual conventions
--

    DosAttackType ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION 
            "This data type indicates a well-known DoS type which can be detected.
            Note that a particular agent may support only certain DoS attack
            types. Thus, the valid values of this object are project
            dependent. An agent may respond with an error 
            (e.g., 'inconsistentValue ') to a management SET operation which
            attempts to modify the value to one which is not supported by the
            managed device."
            SYNTAX INTEGER{   
            landAttack(1),
            blatAttack(2),
            tcpNullScan(3),
            tcpXmasScan(4),
            tcpSynFin(5),
            tcpSynSrcPortLess1024(6),
            pingDeathAttack(7),
            all(99) }

-- ***************************************************************************
-- Node definitions
-- ***************************************************************************
    dpDosPrevMIBNotifications OBJECT IDENTIFIER ::= { dlinkPrimeDosPrevMIB 0 }
    dpDosPrevMIBObjects       OBJECT IDENTIFIER ::= { dlinkPrimeDosPrevMIB 1 }
    dpDosPrevMIBConformance   OBJECT IDENTIFIER ::= { dlinkPrimeDosPrevMIB 2 }
        
-- ***************************************************************************
-- dpDosPrevMIBObjects
-- ***************************************************************************
    dpDosPrevCtrlTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF DpDosPrevCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table includes the settings of all DoS prevention 
            types supported by the Switch.             
            Note: the special attack type 'all' is not included
            in this table."             
        ::= { dpDosPrevMIBObjects 1 }
           
    dpDosPrevCtrlEntry OBJECT-TYPE
        SYNTAX          DpDosPrevCtrlEntry                         
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A single entry in the DoS prevention control table."             
        INDEX   { dpDosPrevCtrlAttackType }
        ::= { dpDosPrevCtrlTable 1 }
               
    DpDosPrevCtrlEntry ::=   SEQUENCE {
        dpDosPrevCtrlAttackType          DosAttackType,
        dpDosPrevCtrlEnabled             TruthValue,
        dpDosPrevCtrlActionType          INTEGER
    }
        
    dpDosPrevCtrlAttackType OBJECT-TYPE
        SYNTAX          DosAttackType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This object indicates the DoS attack type."
        ::= { dpDosPrevCtrlEntry 1 }
    
    dpDosPrevCtrlEnabled OBJECT-TYPE
        SYNTAX TruthValue 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the state of the DoS attack type.
            Setting this object to 'false' will reset other columnar
            objects in the same row."
        DEFVAL      { false }      
        ::= { dpDosPrevCtrlEntry 2 }
       
    dpDosPrevCtrlActionType OBJECT-TYPE
        SYNTAX  INTEGER    {   
            drop(1)    
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object indicates the action for the DoS prevention type."
        DEFVAL      { drop }    
        ::= { dpDosPrevCtrlEntry 3 }     
        
--  ***************************************************************************	
--  Conformance
--  ***************************************************************************
    dpDosPrevMIBCompliances 
        OBJECT IDENTIFIER ::= { dpDosPrevMIBConformance 1 }
    dpDosPrevMIBGroups
        OBJECT IDENTIFIER ::= { dpDosPrevMIBConformance 2 }

    dpDosPrevMIBCompliance MODULE-COMPLIANCE
        STATUS          current   
        DESCRIPTION
            "The compliance statement for the DoS Prevention MIB."
        MODULE -- this module
        MANDATORY-GROUPS { 
            dpDosPrevBasicGroup
        }                       
        GROUP dpDosPrevActionRedirectCtrlGroup
        DESCRIPTION
            "This group need not be implemented if only support 'drop' for DoS
            attack."
        ::= { dpDosPrevMIBCompliances 1 }
        
    dpDosPrevBasicGroup OBJECT-GROUP
        OBJECTS    {                       
            dpDosPrevCtrlEnabled
        }
        STATUS          current
        DESCRIPTION
            "The collection of objects provides basic control for DoS
            Prevention."
        ::= { dpDosPrevMIBGroups 1 }
    
END

