-- ----------------------------------------------
-- Add agentNotify
-- By Karen, 2004/7/7
-- ----------------------------------------------
AGENT-MIB  DEFINITIONS ::= BEGIN

    IMPORTS
        IpAddress			        FROM RFC1155-SMI
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32		 	FROM SNMPv2-SMI
        TruthValue          FROM SNMPv2-TC
        DisplayString		FROM RFC1213-MIB 
        AgentNotifyLevel    FROM DLINK-ID-REC-MIB               
        dlink-common-mgmt	FROM DLINK-ID-REC-MIB;        
    	
      agentGeneralMgmt MODULE-IDENTITY
	    LAST-UPDATED "0007150000Z"
	    ORGANIZATION " "
	    CONTACT-INFO
	        "     "
	    DESCRIPTION
		    "The Structure of Common Management Information."
        ::= {  dlink-common-mgmt 1 }
        
        


    -- ****************
    -- agentBasicInfo *
    -- ****************
    agentBasicInfo          OBJECT IDENTIFIER ::= { agentGeneralMgmt 1 }
        
    agentMgmtProtocolCapability OBJECT-TYPE
        SYNTAX  INTEGER {   
                    other(1),
                    snmp-ip(2),
                    snmp-ipx(3),
                    snmp-ip-ipx(4)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The network management protocol(s) supported by this agent."
        ::= { agentBasicInfo 1 }


    -- *************************
    -- agentMibcapabilityTable *
    -- *************************

    agentMibCapabilityTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AgentMibCapabilityEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of MIB capability entries supported by this agent."    
        ::= { agentBasicInfo 2 }

    agentMibCapabilityEntry OBJECT-TYPE
        SYNTAX  AgentMibCapabilityEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A MIB capability entry contains objects describing a particular MIB
             supported by this agent."
        INDEX   { agentMibCapabilityIndex }
        ::= { agentMibCapabilityTable 1 }

    AgentMibCapabilityEntry ::= 
        SEQUENCE {
            agentMibCapabilityIndex
                Integer32,
            agentMibCapabilityDescr
                DisplayString,
            agentMibCapabilityVersion
                Integer32,
            agentMibCapabilityType
                INTEGER
        }

    agentMibCapabilityIndex OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "A list of agentMibCapabilityDescr entries."
        ::= { agentMibCapabilityEntry 1 }

    agentMibCapabilityDescr OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..35))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The name of the MIB supported by the agent."
        ::= { agentMibCapabilityEntry 2 }

    agentMibCapabilityVersion OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The version of the MIB specified in this entry."
        ::= { agentMibCapabilityEntry 3 }

    agentMibCapabilityType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    standard(2),
                    proprietary(3),
                    experiment(4)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The type of the MIB specified in this entry."
        ::= { agentMibCapabilityEntry 4 }


    agentStatusConsoleInUse   OBJECT-TYPE
        SYNTAX INTEGER {
               other(1),
               in-use(2),
               not-in-use(3)
               }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This indicates whether console is currently in-use."
        ::= { agentBasicInfo 3 }

    agentStatusSave OBJECT-TYPE
        SYNTAX INTEGER {
               other(1),
               proceeding(2),
               completed(3),
               failed(4)
               }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This indicates the status of saving type.
            
            other(1) - this entry is currently in use but the conditions 
                     under which it will remain so are different from each 
                     of the following values.
            proceeding(2) - the device configuration is being currently saved into the NV-RAM.
            completed(3) V all of the device configuration parameters have been
                     saved into NV-RAM.
            failed(4) - The process to save device configuration is failed."
        ::= { agentBasicInfo 4 }

    agentStatusFileTransfer OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1) ,
                    in-process(2),
                    invalid-file(3),
                    violation(4),
                    file-not-found(5),
                    disk-full(6),
                    complete(7),
                    time-out(8),
                    not-format(9),
                    memory-full(10)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "status of firmware download control. If the value is 'other',
            means never firmware updated since device started up." 
        ::= { agentBasicInfo 5 } 
        
    -- *************************
    -- agentCPUutilizationTable *
    -- *************************
    agentCPUutilization          OBJECT IDENTIFIER ::= { agentBasicInfo 6 }
    

    agentCPUutilizationIn5sec OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Time scale is 5 seconds.The value will be between 0%(idle) and 100%
            (very busy)."
        ::= { agentCPUutilization 1 }

    agentCPUutilizationIn1min OBJECT-TYPE
        SYNTAX  Integer32

        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Time scale is 1 minute.The value will be between 0%(idle) and 100%
            (very busy)."
        ::= { agentCPUutilization 2 }

    agentCPUutilizationIn5min OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Time scale is 5 minute.The value will be between 0%(idle) and 100%
            (very busy)."
        ::= { agentCPUutilization 3 }    
            
        agentDualImage OBJECT-TYPE
        SYNTAX  INTEGER {
                    not-supported(0) ,
                    supported(1)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "status of dual image." 
        ::= { agentBasicInfo 7 }      
    -- ******************
    -- agentBasicConfig *
    -- ******************
    agentBasicConfig        OBJECT IDENTIFIER ::= { agentGeneralMgmt 2 }   

    agentBscSwFileTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AgentBscSwFileEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of MIB Basic Config entries supported file Update by this agent."    
        ::= { agentBasicConfig 1 }    
        
    agentBscSwFileEntry OBJECT-TYPE
        SYNTAX  AgentBscSwFileEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A basic config entry contains objects describing a particular MIB
             supported by this agent."
        INDEX   { agentBscSwFileIndex }
        ::= { agentBscSwFileTable 1 }        

    AgentBscSwFileEntry ::=
    	SEQUENCE {
    		agentBscSwFileIndex
    			Integer32,
    		agentBscSwFileDscr
    			DisplayString,
    		agentBscSwFileAddr
    			IpAddress,
    		agentBscSwFileTransferType
    			INTEGER,
        	agentBscSwFile
        		DisplayString,
        	agentBscSwFileLocateId
        		INTEGER,
        	agentBscSwFileLoadType
        		INTEGER,
        	agentBscSwFileCtrl
        		INTEGER,
        	agentBscSwFileBIncrement
        	    TruthValue,
        	agentMultiImageCtrlID
        		INTEGER
        }

    agentBscSwFileIndex OBJECT-TYPE
    	SYNTAX	Integer32
    	MAX-ACCESS	read-write
    	STATUS	current
    	DESCRIPTION
    		"The table index for the file entry"
    	::= { agentBscSwFileEntry 1 }

    agentBscSwFileDscr OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The description for the purpose of the software file in this entry.
			 Note:
			 For system which does not support change of this object, setting value to 
			 this object will cause the system to return bad-value error message.
			 "
        ::= { agentBscSwFileEntry 2 }
        
    agentBscSwFileAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The IP address where the File to be downloaded is located, or the IP address
            where the file will be uploaded to."
        ::= {  agentBscSwFileEntry 3 }
            	
    agentBscSwFileTransferType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    network-load(2),
                    out-of-band-load(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The channel through which the file will be downloaded or uploaded. 

			 Note:
			 For system which does not support all channels, setting value to the unsupported 
			 channel will cause the system to return bad-value error message.
			 "
        ::= { agentBscSwFileEntry 4 }

    agentBscSwFile OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..128))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The name of the file to be downloaded from the TFTP server, or to be uploaded
            to."
        ::= { agentBscSwFileEntry 5 }
        
    agentBscSwFileLocateId OBJECT-TYPE
        SYNTAX  INTEGER (1..16)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object describes the type of the file.
             runtime-code(1),
             log-file(2),
             cfg-file(3)
             
			 Note:
			 For system which does not support change of this object, setting value to 
			 this object will cause the system to return bad-value error message.
             " 
        ::= { agentBscSwFileEntry 6 }
        
    agentBscSwFileLoadType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    upload(2),
                    download(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        	"This object provides the user to select download or upload function for the file.

			 Note:
			 For system which does not support change of this object, setting value to 
			 this object will cause the system to return bad-value error message.
			 "
        ::= { agentBscSwFileEntry 7 }
                                               
    agentBscSwFileCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    inactive(2),
                    start(3),
                    delete(4),
                    config-as-bootup-fw(5)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object provides the user to download runtime software. The setting 
 		  	 will take effect when the system is restart. See Note(1) below
 		  
			 Note:
			 For system which does not support change of this object to some value, 
			 setting object to these values cause the system to return 
			 bad-value error message.
            start(3) - start to action.
	        delete(4) - delete the firmware by indicated firmware ID.
	        config-as-bootup-fw(5) - configured as bootup firmware by indicated 
            firmware(ID).
			 "
        ::= { agentBscSwFileEntry 8 }
	
	agentBscSwFileBIncrement OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The parameter for download cfg-file."
        ::= { agentBscSwFileEntry 9 }       

    agentMultiImageCtrlID OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The image ID of firmware image.
             image id 1(1),
             image id 2(2),
             current active image id(0xFF)
            "
        ::= { agentBscSwFileEntry 10 }	

	agentFileTransfer OBJECT-TYPE
		SYNTAX INTEGER {
				other(1),
				start(2),
				start-and-reset(3),
				noaction(4)
			}
		MAX-ACCESS read-write
		STATUS obsolete
		DESCRIPTION
			"This object will execute the download or upload action. If start(2), it will
			begin to download/upload, but no reset as follow. If start-and-reset(3), then
			the reset will active after download or upload. No action if(4). 

			 Note:
			 Because these funiction will be limited by the system support. Some of the 
			 select item will invalid. When one of the item user select,it will response with 
			 bad-value status."
		::= { agentBasicConfig 2 }
				
    agentSystemReset OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    cold-start(2),
                    warm-start(3),
                    no-reset(4)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the agent system reset state. Setting this
             object to no-reset(4) has no effect. Setting this object to
             cold-start(2) or warm-start(3) will reset the agent. The agent 
             always returns no-reset(4) when this object is read."
        ::= { agentBasicConfig 3 }

    agentRs232PortConfig OBJECT-TYPE
        SYNTAX  INTEGER  {
                    other(1),
                    console(2),
                    out-of-band(3),
					notAvail(4)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the RS-232C mode while device restart."
        ::= { agentBasicConfig 4 }

    agentOutOfBandBaudRateConfig OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    baudRate-2400 (2),
                    baudRate-9600 (3),
                    baudRate-19200(4),
                    baudRate-38400(5),
                    baudRate-115200(6)
                }
        MAX-ACCESS  read-write
        STATUS  obsolete
        DESCRIPTION
            "This object allows user to specify out_of_band baud rate. It will take effect
			 when the system is restart. 
			 
			 Note:
			 Because these funiction will be limited by the system support. Some of the 
			 select item will invalid. When one of the item user select,it will response with 
			 bad-value status.			 
			 "
        ::= { agentBasicConfig 5 }

    agentSave OBJECT-TYPE
        SYNTAX INTEGER {
        			other(1),
        			cfg(2),
        			log(3),
        			all(4)
        		}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This indicates the current device saving type will be saved into to NV-RAM.
             other(1) - none of the following. 
             cfg(2) - save configuration.
             log(3) - save log.
             all(4) - save both (configuration & log)."
        ::= { agentBasicConfig 6 } 
  
--***************************************************************************
--swMultiImageInfoTable
--***************************************************************************
    swMultiImageInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwMultiImageInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            ""
        ::= { agentBasicConfig 7 }
        
    swMultiImageInfoEntry OBJECT-TYPE
        SYNTAX  SwMultiImageInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about multiple image management."
        INDEX  { swMultiImageInfoID }
        ::= { swMultiImageInfoTable 1 }
      
    SwMultiImageInfoEntry ::= 
        SEQUENCE {
        	swMultiImageInfoID
        		INTEGER,
            swMultiImageVersion
                DisplayString,
            swMultiImageSize
                Integer32,
            swMultiImageUpdateTime
                DisplayString,
            swMultiImageFrom
                DisplayString,               
            swMultiImageSendUser
                DisplayString                                                 
        }
    swMultiImageInfoID OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The section ID of firmware image.
             In stack device, uses 2 bytes of swMultiImageInfoID 
             to indicates box id and section id.
             For example, 0x0102(integer 258) means box id 1 and section id 2.
                          0x0202(integer 514) means box id 2 and section id 2.
            "
        ::= { swMultiImageInfoEntry 1 }
             
    swMultiImageVersion OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The record of downloaded firmware version."
        ::= { swMultiImageInfoEntry 2 }
        
    swMultiImageSize OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The record of downloaded firmware size."
        ::= { swMultiImageInfoEntry 3 }

    swMultiImageUpdateTime OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The record of firmware updated time."
        ::= { swMultiImageInfoEntry 4 }

    swMultiImageFrom OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The record of ip address of tftp server."
        ::= { swMultiImageInfoEntry 5 }

    swMultiImageSendUser OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The record of user who download the firmware."
        ::= { swMultiImageInfoEntry 6 }
        
-- ******************************************************************************************	
-- Add common severity control management
-- ******************************************************************************************	
      
   systemSeverityControlMgmt	OBJECT IDENTIFIER ::= { agentBasicConfig 8 }  	

    systemSeverityTrapControl OBJECT-TYPE
        SYNTAX  AgentNotifyLevel 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Indicate the level of  system severity control,The system has a severity level control 
            and each trap should be along with a severity control. When trap event occurs 
            and its severity is higher than the system severity control level, the trap works 
            as it defined. If the event severity is lower than the system severity control level,
            the event is ignored as if it did not occur."
        ::= { systemSeverityControlMgmt 1 }                
        
    systemSeverityLogControl OBJECT-TYPE
        SYNTAX  AgentNotifyLevel 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Indicate the level of  system severity control,The system has a severity level control 
            and each log should be along with a severity control. When log event occurs 
            and its severity is higher than the system severity control level, the log works 
            as it defined. If the event severity is lower than the system severity control level,
            the event is ignored as if it did not occur."
        ::= { systemSeverityControlMgmt 2 }                  
  
    -- ***********************
    -- agentIpProtocolConfig *
    -- ***********************
    agentIpProtoConfig      OBJECT IDENTIFIER ::= { agentGeneralMgmt 3 }

    agentIpNumOfIf OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The total number of IP interfaces supported by this agent."
        ::= {  agentIpProtoConfig 1 }

    agentIpTftpServerAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  obsolete
        DESCRIPTION
            "The IP Address of TFTP Server."
        ::= {  agentIpProtoConfig 2 }
	
    agentIpGetIpFrom OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    disabled(2),
                    bootp(3),
                    dhcp(4)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates whether the agent get its system IP address
             from Bootp/DHCP server at start up."
        ::= { agentIpProtoConfig 3 }	

    agentIpAutoconfig OBJECT-TYPE
        SYNTAX  INTEGER {
                    enabled(1),
                    disabled(2)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            ""
        ::= { agentIpProtoConfig 4 }     	

	-- End of agentIpIfTable ---------         

          
      	 	           
END

