-- -----------------------------------------------------------------------------
-- MIB NAME : Voice VLAN Common mib
-- FILE NAME: VoiceVLAN.mib
-- DATE     : 2009/10/21
-- VERSION  : 1.02
-- PURPOSE  : To construct the MIB structure of VoiceVLAN
--            for proprietary enterprise
-- -----------------------------------------------------------------------------
-- MODIFICTION HISTORY:
-- -----------------------------------------------------------------------------
-- Version, Date, Author
-- Description:
--  [New Object]
--  [Modification]
-- Notes: (Requested by who and which project)
--
-- Version 1.02, 2009/10/21, Tom Jin
-- [Modification]
-- 1. Change the SYNTAX of swVoiceVlanId from 'VlanId' to 'VlanIdOrNone'.
-- 2. Modify the description of swVoiceVlanId.
-- Requested by Tom for project DES3810.
--
-- Version 1.01, 2009/08/17, Tony Tang
-- [Modification]
-- 1. Rename swVoiceVlanTrapState to swVoiceVlanLogState.
-- Notes: Requested by Tony Tang for DES35xx.
--
-- Version 1.00, 2008/10/7, Tony Tang
-- This is the first formal version for universal MIB definition.
-- -----------------------------------------------------------------------------  

VOICE-VLAN-MIB DEFINITIONS ::= BEGIN

	IMPORTS
	    MODULE-IDENTITY,OBJECT-TYPE,Integer32
	        FROM SNMPv2-SMI
	    DateAndTime,MacAddress,RowStatus,DisplayString
	        FROM SNMPv2-TC
	    dlink-common-mgmt	
	        FROM DLINK-ID-REC-MIB
	    PortList,VlanIdOrNone
	    	FROM Q-BRIDGE-MIB;


	swVoiceVLANMIB MODULE-IDENTITY
	    LAST-UPDATED "0910210000Z"
	    ORGANIZATION "D-Link Corp."
	    CONTACT-INFO
	        "http://support.dlink.com"
	    DESCRIPTION
	        "The Voice VLAN module MIB for the proprietary enterprise."
	    ::= { dlink-common-mgmt 74}
	  

		swVoiceVlanCtrl 		OBJECT IDENTIFIER ::= { swVoiceVLANMIB 1 }
		swVoiceVlanInfo 		OBJECT IDENTIFIER ::= { swVoiceVLANMIB 2 }
		swVoiceVlanMgmt 		OBJECT IDENTIFIER ::= { swVoiceVLANMIB 3 }
		   
-- -----------------------------------------------------------------------------
-- swVoiceVlanCtrl
-- -----------------------------------------------------------------------------    
		swVoiceVlanId OBJECT-TYPE
        	SYNTAX  VlanIdOrNone
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		"The VLAN ID of the voice VLAN. The voice VLAN is used to asssign 
					VLAN for untagged voice packets.
					If the value zero is for display only and not configurable, which 
					means there is no voice VLAN on the switch."  		
        	::= { swVoiceVlanCtrl 1 }
        	
		swVoivceVlanGlobalState OBJECT-TYPE
	        SYNTAX  INTEGER{
	                enabled(1),
	                disabled(2)
	                }
	        MAX-ACCESS  read-write
	        STATUS  current
	        DESCRIPTION
	           	 "This object indicates the global status of the Voice VLAN. if we enable the voice vlan,
	           	 we should set the vid first."
	        ::= { swVoiceVlanCtrl 2 }
    
		swVoiceVlanPriority OBJECT-TYPE
        	SYNTAX  INTEGER(0..7)
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		"The priority for the voice VLAN ,which is used to distinguish
            		 the QoS of the voice traffic from data traffic."
        	::= { swVoiceVlanCtrl 3 }
        
		swVoiceVlanAgingTime OBJECT-TYPE
        	SYNTAX  INTEGER(1..65535)
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		"The aging time for the voice VLAN ,which is used to remove a 
            		port from a voice VLAN when the working mode is auto."
        	::= { swVoiceVlanCtrl 4 }
        
		swVoiceVlanLogState OBJECT-TYPE
        	SYNTAX  INTEGER
        	{
                 	enabled(1),
                	disabled(2)
                }
        	MAX-ACCESS  read-write
        	STATUS  current
        	DESCRIPTION
            		" This object indicates the voice VLAN log state."
        	::= { swVoiceVlanCtrl 5 }
        	         	
-- -----------------------------------------------------------------------------
-- swVoiceVlanInfo
-- -----------------------------------------------------------------------------
		swVoiceVlanMemberPortlist OBJECT-TYPE
	    	SYNTAX      PortList
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The voice VLAN's member ports."
	    	::= { swVoiceVlanInfo 1 }	 	
	    
		swVoiceVlanDynamicPortlist OBJECT-TYPE
	    	SYNTAX      PortList
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The voice VLAN's member ports that dynamically joined the voice VLAN from a learned voice device."
	    	::= { swVoiceVlanInfo 2 }
 -- -----------------------------------------------------------------------------  	
	
		swVoiceVlanDeviceTable OBJECT-TYPE
			SYNTAX  SEQUENCE OF SwVoiceVlanDeviceEntry
			MAX-ACCESS not-accessible
	        STATUS current
	        DESCRIPTION
	                   "The Management information of a voice VLAN member ports'device."
	
                ::= { swVoiceVlanInfo 3 }

		swVoiceVlanDeviceEntry OBJECT-TYPE
		    SYNTAX SwVoiceVlanDeviceEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        "The information from the voice device connected to the switch."
		    INDEX { swVoiceVlanPort, swVoiceVlanDeviceAddr}
	
		    ::= { swVoiceVlanDeviceTable 1 }

		SwVoiceVlanDeviceEntry ::=
		    SEQUENCE {
		    	swVoiceVlanPort
				 INTEGER,
		        swVoiceVlanDeviceAddr
		            	MacAddress,
		        swVoiceVlanDeviceStartTime
		            	DateAndTime,     				
			swVoiceVlanDeviceActiveTime
				DateAndTime
		    }
         	
		 swVoiceVlanPort OBJECT-TYPE
			SYNTAX      INTEGER
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The voice device's connected port."
	    	::= { swVoiceVlanDeviceEntry 1 }

         swVoiceVlanDeviceAddr OBJECT-TYPE
               	SYNTAX      MacAddress
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The voice device MAC address."
	    	::= { swVoiceVlanDeviceEntry 2 }
       	 swVoiceVlanDeviceStartTime OBJECT-TYPE
               	SYNTAX      DateAndTime
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The time the voice device first connected to the switch."
	    	::= { swVoiceVlanDeviceEntry 3 }

         swVoiceVlanDeviceActiveTime OBJECT-TYPE
               	SYNTAX      DateAndTime
	    	MAX-ACCESS  read-only
	    	STATUS      current
	    	DESCRIPTION
	        	"The active time of the voice device."
	    	::= { swVoiceVlanDeviceEntry 4}	
-- -----------------------------------------------------------------------------
-- swVoiceVlanMgmt
-- -----------------------------------------------------------------------------

		swVoiceVlanOuiTable OBJECT-TYPE
		    SYNTAX  SEQUENCE OF SwVoiceVlanOuiEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        "The Management information of the voice VLAN OUI." 
		        
		    ::= { swVoiceVlanMgmt 1 }
	
		swVoiceVlanOuiEntry OBJECT-TYPE
		    SYNTAX SwVoiceVlanOuiEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        "The management information of the OUI of a voice VLAN domain.
		        An OUI contains information about the type of ip-phone .that can make use of the OUI
		        to check the voice traffic ."
		    INDEX { swVoiceVlanOuiAddr}
	
		    ::= { swVoiceVlanOuiTable 1 }
	
		SwVoiceVlanOuiEntry ::=
		    SEQUENCE {
		    	swVoiceVlanOuiAddr
				 		MacAddress,
		        swVoiceVlanOuiMask
		            	MacAddress,
		        swVoiceVlanOuiDes
		            	DisplayString,     				
				swVoiceVlanOuiRowStatus
						RowStatus
		    }

    	swVoiceVlanOuiAddr OBJECT-TYPE
        	SYNTAX  MacAddress
        	MAX-ACCESS  read-only
        	STATUS  current
        	DESCRIPTION
            		"The address of the OUI referring to this SwVoiceVlanOuiEntry."
        	::= { swVoiceVlanOuiEntry 1 }
	    
        swVoiceVlanOuiMask OBJECT-TYPE
	    	SYNTAX      MacAddress
	    	MAX-ACCESS  read-create
	    	STATUS      current
	    	DESCRIPTION
	        	"The OUI mask indicates the valid bit of the OUI address."
	    	::= { swVoiceVlanOuiEntry 2 }	
	    	
		swVoiceVlanOuiDes OBJECT-TYPE
		    	SYNTAX      DisplayString
		    	MAX-ACCESS  read-create
		    	STATUS      current
		    	DESCRIPTION
		        	"The description of the OUI."
		    	::= { swVoiceVlanOuiEntry 3 }
	
		swVoiceVlanOuiRowStatus	OBJECT-TYPE
		    	SYNTAX      RowStatus
		    	MAX-ACCESS  read-create
		    	STATUS      current
		    	DESCRIPTION
		        	"This object indicates the status of this entry."
		    	::= { swVoiceVlanOuiEntry 4 }
	    	
-- -----------------------------------------------------------------------------	
		swVoiceVlanPortTable OBJECT-TYPE
		    SYNTAX  SEQUENCE OF SwVoiceVlanPortEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        "The Management of the voice VLAN function on all bridge ports. Some ports are not
		        member ports of a voice VLAN, but they may be added in auto mode, so this function enables both current voice VLAN member ports and non-VLAN member ports to be managed." 
		        
		    ::= { swVoiceVlanMgmt 2 }
	
		swVoiceVlanPortEntry OBJECT-TYPE
		    SYNTAX SwVoiceVlanPortEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        "The Management of the voice VLAN function on ports"
		    INDEX { swVoiceVlanPortNumber}
	
		    ::= { swVoiceVlanPortTable 1 }
	
		SwVoiceVlanPortEntry ::=
		    SEQUENCE {
		    	swVoiceVlanPortNumber
				 INTEGER,
		        swVoiceVlanPortState
		            	INTEGER,
		        swVoiceVlanPortMode
		            	INTEGER    				
		    }
		    
		swVoiceVlanPortNumber OBJECT-TYPE
		    	SYNTAX      INTEGER
		    	MAX-ACCESS  read-only
		    	STATUS      current
		    	DESCRIPTION
		        	"Bridge ports, can be configured with voice VLAN function."
		    	::= { swVoiceVlanPortEntry 1 }	
		    	
		swVoiceVlanPortState OBJECT-TYPE
		    	SYNTAX     INTEGER
		    	{
	                 	enabled(1),
	                	disabled(2)
	                } 
		    	MAX-ACCESS  read-write
		    	STATUS      current
		    	DESCRIPTION
		        	"Port state here indicates whether the port supports the voice VLAN function,
		        	we can enable/disable voice vlan function on port."
		    	::= { swVoiceVlanPortEntry 2 }
	
		swVoiceVlanPortMode OBJECT-TYPE
		    	SYNTAX     INTEGER
		       {
		    		auto(1),
		    		manual(2)
		       }
		       MAX-ACCESS  read-write
		    	STATUS      current
		    	DESCRIPTION
		        	"Port mode just indicates which mode of voice VLAN function is supported by port. 
		        	If in auto mode ,the port can be added in to voice vlan automatically when it connect
		        	a ip-phone,else the port just added by mannual."
		    	::= { swVoiceVlanPortEntry 3 }


END
