-- *****************************************************************
-- MY-SMP-MIB.mib:  My SMP MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

DES7200-SMP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Unsigned32,
        Integer32,
        IpAddress
                FROM SNMPv2-SMI
        RowStatus,
        DisplayString,
        MacAddress,
        TruthValue
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        IfIndex,
        ConfigStatus
                FROM DES7200-TC
        ifIndex        
                FROM IF-MIB
        myMgmt
                FROM DES7200-SMI
        Community
        				FROM DES7200-SNMP-AGENT-MIB
        VlanId
                FROM Q-BRIDGE-MIB;        				

mySMPMIB MODULE-IDENTITY
        LAST-UPDATED "200409090000Z"
        ORGANIZATION "D-Link Crop."
        CONTACT-INFO
                " 
                http://support.dlink.com"
        DESCRIPTION
                "This module defines the MIB security case requires. At present, this MIB could only be accessed by 
                the specified SMP Server." 
        REVISION      "200409090000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 39}

mySMPMIBObjects OBJECT IDENTIFIER ::= { mySMPMIB 1 }

--
--  user management
--

mySMPServer OBJECT-TYPE
		SYNTAX IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "IP addresses for the SMP Server."  
    ::= { mySMPMIBObjects 1 }
    
mySMPServerKey OBJECT-TYPE
		SYNTAX Community
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Keys for the SMP Server." 
    ::= { mySMPMIBObjects 2 }    
    
mySMPEventSendSlice OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The minimum interval of sending SU security event. The variable value must be less 
             than the one defined by mySMPHICheckInterval."
    ::= { mySMPMIBObjects 3 }    
    
mySMPPolicyDelete OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-write
    STATUS      current    
    DESCRIPTION
            "This variable value:
             0: No action is required; other values:Delete all policy information."
    ::= { mySMPMIBObjects 4 }  
        
mySMPPolicyChecksum OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(16))
    MAX-ACCESS read-only
    STATUS      current    
    DESCRIPTION
            "The checksum information set on the current SMP policy table."  
    ::= { mySMPMIBObjects 5 }     

mySMPPolicyTimeout OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS      current    
    DESCRIPTION
            "Timeout time of SMP policy."  
    ::= { mySMPMIBObjects 6 }    
    
mySMPPolicyGroupTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF MySMPPolicyGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "Security policy group."  
    ::= { mySMPMIBObjects 9}

mySMPPolicyGroupEntry OBJECT-TYPE
        SYNTAX  MySMPPolicyGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "SMP policy group." 
        INDEX   {mySMPPolicyGroupIndex}
    ::= { mySMPPolicyGroupTable 1 }
 
    MySMPPolicyGroupEntry ::=
        SEQUENCE {
                mySMPPolicyGroupIndex
                       Unsigned32,        
                mySMPPolicyGroupCount
                       Unsigned32,
                mySMPPolicyGroupChecksum
                       OCTET STRING(SIZE(16)),           
                mySMPPolicyGroupStatus
                       RowStatus
      }

mySMPPolicyGroupIndex OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
              "Policy group index."
    ::= { mySMPPolicyGroupEntry 1 }

mySMPPolicyGroupCount OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Policy count in the policy group." 
    ::= { mySMPPolicyGroupEntry 2 }
    
mySMPPolicyGroupChecksum OBJECT-TYPE
        SYNTAX OCTET STRING(SIZE(16))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The sole identification in the policy group."  
    ::= { mySMPPolicyGroupEntry 3 }

mySMPPolicyGroupStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "The status of this conceptual row."
    ::= { mySMPPolicyGroupEntry 4 }
    
mySMPPolicyTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF MySMPPolicyEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "Security policy table." 
    ::= { mySMPMIBObjects 8}

mySMPPolicyEntry OBJECT-TYPE
        SYNTAX  MySMPPolicyEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "SMP policy table."  
        INDEX   {mySMPGroupIndex,mySMPPolicyIndex}
    ::= { mySMPPolicyTable 1 }

    MySMPPolicyEntry ::=
        SEQUENCE {
                mySMPGroupIndex
                       Unsigned32,
                mySMPPolicyIndex
                       Unsigned32,        
                mySMPPolicyStatus
                       ConfigStatus,
                mySMPPolicyNumber
                       Unsigned32,
                mySMPPolicyInstallPort
                       IfIndex,           
                mySMPPolicyType
                       INTEGER,  
                mySMPPolicyContent
                       OCTET STRING,
                mySMPPolicyMask
                       OCTET STRING,
                mySMPPolicyName
                       DisplayString
      }

mySMPGroupIndex OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
              "The index of the policy group which the current policy is in." 
    ::= { mySMPPolicyEntry 1 }

mySMPPolicyIndex OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
              "The policy index." 
    ::= { mySMPPolicyEntry 2 }

mySMPPolicyStatus OBJECT-TYPE
        SYNTAX       ConfigStatus
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Entry state fields. For the detailed information, pls refer to DES7200-TC."
    ::= { mySMPPolicyEntry 3 }
  
mySMPPolicyNumber OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
              "The policy sequence number."  
    ::= { mySMPPolicyEntry 4 }
    
mySMPPolicyInstallPort OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
              "The index of port installed the policy." 
    ::= { mySMPPolicyEntry 5 }
    
mySMPPolicyType OBJECT-TYPE
        SYNTAX INTEGER{
        	hi-isolate(1),
        	isolate(2),
        	blocked(3),
        	addrBind(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The action of policy template. Hi-isolate application failure can be detected by HI only.
            isolate: isolation action; blocked: blocking action; addrBind: address-binding action. "
        ::= { mySMPPolicyEntry 6 }
        
mySMPPolicyContent OBJECT-TYPE
        SYNTAX OCTET STRING(SIZE(80))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Content(80 bytes) of policy template."  
        ::= { mySMPPolicyEntry 7 }
        
mySMPPolicyMask OBJECT-TYPE
        SYNTAX OCTET STRING(SIZE(80))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Mask information(80 bytes) of policy template." 
        ::= { mySMPPolicyEntry 8 }    
        
mySMPPolicyName OBJECT-TYPE
        SYNTAX       DisplayString(SIZE (0..32))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Policy name fields."  
    ::= { mySMPPolicyEntry 9 }
    
mySMPFrameRelayTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF MySMPFrameRelayEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "SMP message forward table." 
    ::= { mySMPMIBObjects 7}

mySMPFrameRelayEntry OBJECT-TYPE
        SYNTAX  MySMPFrameRelayEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
              "SMP message forward table."  
        INDEX   {mySMPFrameRelayIndex}
    ::= { mySMPFrameRelayTable 1 }

    MySMPFrameRelayEntry ::=
        SEQUENCE {
                mySMPFrameRelayIndex
                       Unsigned32,        
                mySMPFrameRelayContent
                       OCTET STRING,
                mySMPFrameRelayLength
                       Unsigned32,           
                mySMPFrameRelayDestPort
                		   IfIndex,
                mySMPFrameRelayDestVlan
                		   VlanId                                       		   
      }

mySMPFrameRelayIndex OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
              "SMP message forward table index."   
    ::= { mySMPFrameRelayEntry 1 }
    
mySMPFrameRelayContent OBJECT-TYPE
        SYNTAX OCTET STRING(SIZE(0..1024))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "SMP message content with maximal 1024 bytes." 
    ::= { mySMPFrameRelayEntry 2 }
    
mySMPFrameRelayLength OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS      current    
    DESCRIPTION
            "SMP message length."  
    ::= { mySMPFrameRelayEntry 3 } 

mySMPFrameRelayDestPort OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
              "The index of destination port SMP messages are sent to." 
    ::= { mySMPFrameRelayEntry 4 }
    
mySMPFrameRelayDestVlan OBJECT-TYPE
        SYNTAX  VlanId
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
              "The VLAN ID of destination port SMP messages are sent to." 
    ::= { mySMPFrameRelayEntry 5 }    
      

-- As the given port in SMP Server, this node will not be present in MIB. 
  mySMPTraps      OBJECT IDENTIFIER ::= { mySMPMIB 65535}
        
  mySMPSwitchIP OBJECT-TYPE
          SYNTAX IpAddress
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "IP addresses for the switch sending the Trap." 
          ::= { mySMPTraps 1 }          
        
  mySMPSwitchInterfaceID OBJECT-TYPE
          SYNTAX IfIndex
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The interface receiving the messages to be forwarded." 
          ::= { mySMPTraps 2 }    
  
  mySMPSwitchInterfaceVLANID OBJECT-TYPE
          SYNTAX VlanId
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The VLAN ID of the switch interface receiving the messages to be forwarded."
          ::= { mySMPTraps 3 }  

  mySMPFrameContentLength OBJECT-TYPE
          SYNTAX Unsigned32
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The encapsulated message length, which can not exceed 1024." 
          ::= { mySMPTraps 4 }      
        
  mySMPFrameContent OBJECT-TYPE
          SYNTAX OCTET STRING(SIZE(0..1024))
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The encapsulated message whose length can not exceed 1024." 
          ::= { mySMPTraps 5 }      
        
  mySMPFrameRelayTrap NOTIFICATION-TYPE
      OBJECTS  {mySMPSwitchIP,mySMPSwitchInterfaceID,mySMPSwitchInterfaceVLANID,
      			  mySMPFrameContentLength,mySMPFrameContent}
      STATUS  current
      DESCRIPTION
              "Trap message includes: IP address for the specified received message, 
               port receiving the message, message length and message content." 
      ::= { mySMPTraps 6 }


  mySMPArpAttackSubnetIP OBJECT-TYPE
          SYNTAX OCTET STRING(SIZE(0..40))
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "IP addresses for all subnets of SVI where the attack source locates." 
          ::= { mySMPTraps 7 }          
        
  mySMPArpAttackSubnetIPNum OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "Subnet IP address number." 
          ::= { mySMPTraps 8 }          

  mySMPArpAttackInterfaceSlot OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The slot number for the device connecting the attack source." 
          ::= { mySMPTraps 9 }    
  
  mySMPArpAttackInterfacePort OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The interface number for the device connecting the attack source." 
          ::= { mySMPTraps 10}  

  mySMPArpAttackInterfaceVlanID OBJECT-TYPE
          SYNTAX VlanId
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The VLAN ID of VLAN where the attack source locates."
          ::= { mySMPTraps 11 }      
        
  mySMPArpAttackFrameContent OBJECT-TYPE
          SYNTAX OCTET STRING(SIZE(0..64))
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The ARP messages sent from the attack source." 
          ::= { mySMPTraps 12 }      

  mySMPArpAttackStatus OBJECT-TYPE
          SYNTAX TruthValue
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "Show whether the device is attacked by the attack source or not.
             true: attack occurred; false: attack has been removed." 
          ::= { mySMPTraps 13 }

  mySMPArpAttackCriticalStatus OBJECT-TYPE
          SYNTAX INTEGER{
             critical(1),          -- Slight ARP attack, infulencing normal operation of the network 
                                   -- and advertising the SMP Server. 
             emergencies(2)        -- Severe ARP attack, leading to network crash. System blocks this 
                                   -- attack automatically and advertise the SMP Server. 
          }
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The severity level of device attack by attack source: 
             critical(1),          -- Slight ARP attack, infulencing normal operation of the network
                                      and advertising the SMP Server. 
             emergencies(2)        -- Severe ARP attack, leading to network crash. System blocks this
                                      attack automatically and advertise the SMP Server. "
          ::= { mySMPTraps 14 }

  mySMPArpAttackMac OBJECT-TYPE
          SYNTAX MacAddress
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "MAC address for the device connecting the attack source." 
          ::= { mySMPTraps 15 }      

  mySMPArpAttackInterfaceIndex OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS accessible-for-notify
          STATUS current
          DESCRIPTION
            "The interface index for the device connecting the attack source." 
          ::= { mySMPTraps 16 }      
        
  mySMPArpAttackTrap NOTIFICATION-TYPE
      OBJECTS  {mySMPArpAttackSubnetIP, mySMPArpAttackSubnetIPNum, mySMPArpAttackInterfaceSlot,
               mySMPArpAttackInterfacePort, mySMPArpAttackInterfaceVlanID, mySMPArpAttackFrameContent,
               mySMPArpAttackStatus, mySMPArpAttackCriticalStatus, mySMPArpAttackMac, 
               mySMPArpAttackInterfaceIndex}
      STATUS  current
      DESCRIPTION
              "Trap message includes: 
                  IP addresses for all subnets of SVI where the attack source locates,
                  Subnet IP address number,
                  Slot number the attack source attacks,
                  Port number the attack source attacks,
                  VLAN ID of the VLAN the attack source belongs to,
                  ARP message(64 bytes),
                  Advertisement of attack occurrance and removal,
                  MAC address for the device connecting the attack source,
                  Interface index for the device connecting the attack source."
      ::= { mySMPTraps 17 }        

mySMPMIBConformance OBJECT IDENTIFIER ::= { mySMPMIB 3 }
mySMPMIBCompliances OBJECT IDENTIFIER ::= { mySMPMIBConformance 1 }
mySMPMIBGroups      OBJECT IDENTIFIER ::= { mySMPMIBConformance 2 }

-- compliance statements
myDeviceMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My SMP MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { mySMPServerMibGroup,
                                   mySMPClientMibGroup,
                                   mySMPPolicyMibGroup,
                                   mySMPFrameRelayMibGroup}
        ::= { mySMPMIBCompliances 1 }
        
mySMPServerMibGroup    OBJECT-GROUP
    OBJECTS {
    					mySMPServer,
    					mySMPServerKey
            }
    STATUS  current
    DESCRIPTION
            "Collection of SMP Server information." 
    ::= { mySMPMIBGroups 1 }
    
mySMPClientMibGroup    OBJECT-GROUP
    OBJECTS {
    					mySMPEventSendSlice
            }
    STATUS  current
    DESCRIPTION
            "Collection of restricted information of SMP Client management." 
    ::= { mySMPMIBGroups 2 }    
    
mySMPPolicyMibGroup    OBJECT-GROUP
    OBJECTS {
    					mySMPPolicyDelete,
    					mySMPPolicyChecksum,
              mySMPPolicyIndex,
              mySMPPolicyStatus,
              mySMPPolicyInstallPort,
              mySMPPolicyType,
              mySMPPolicyContent,
              mySMPPolicyMask,
              mySMPPolicyName
            }
    STATUS  current
    DESCRIPTION
            "Policy information collection." 
    ::= { mySMPMIBGroups 3 }       
    
mySMPFrameRelayMibGroup    OBJECT-GROUP
    OBJECTS {
              mySMPFrameRelayIndex,
              mySMPFrameRelayContent,
              mySMPFrameRelayLength,
              mySMPFrameRelayDestPort,
              mySMPFrameRelayDestVlan
            }
    STATUS  current
    DESCRIPTION
            "Information collection of message forward table." 
    ::= { mySMPMIBGroups 4 }         


END
