-- *****************************************************************
-- FS-VOICE-VLAN-MIB.mib:  FS Voice VLAN MIB file
--
-- June 2009, miaoshifu
--
-- Copyright (c) 2009 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-VOICE-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE
                FROM SNMPv2-SMI
        RowStatus,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        IfIndex
                FROM FS-TC        
        EnabledStatus
        	      FROM P-BRIDGE-MIB        
        fsMgmt
                FROM FS-SMI;

fsVoiceVlanMIB MODULE-IDENTITY
        LAST-UPDATED "200906180000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs voice vlan mibs."
        REVISION      "200906180000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 52}

-- Voice VLAN

fsVoiceVlanMIBObjects OBJECT IDENTIFIER ::= { fsVoiceVlanMIB 1 }


fsVoiceVlanOuiTable OBJECT-TYPE
		    SYNTAX  SEQUENCE OF FSVoiceVlanOuiEntry
		    MAX-ACCESS not-accessible
		    STATUS   current
		    DESCRIPTION
		        " A table containing the mac address which can be identified by voice vlan "
		    ::= { fsVoiceVlanMIBObjects 1 }

fsVoiceVlanOuiEntry OBJECT-TYPE
		    SYNTAX  FSVoiceVlanOuiEntry
		    MAX-ACCESS not-accessible
		    STATUS current
		    DESCRIPTION
		        " A table containing the mac address which can be identified by voice vlan "
        INDEX   { fsVoiceVlanOuiAddress }		
        ::= { fsVoiceVlanOuiTable 1}

FSVoiceVlanOuiEntry	::=
	      SEQUENCE {
		            fsVoiceVlanOuiAddress	MacAddress  ,
		            fsVoiceVlanOuiMask	MacAddress  ,
		            fsVoiceVlanOuiDescription	OCTET STRING  ,
		            fsVoiceVlanOuiRowStatus  	RowStatus
		    }

fsVoiceVlanOuiAddress OBJECT-TYPE
    		SYNTAX  MacAddress  
		    MAX-ACCESS read-only
		    STATUS current
		    DESCRIPTION
		        " Mac address can be identified by voice vlan "
		    ::= { fsVoiceVlanOuiEntry 1 }

fsVoiceVlanOuiMask OBJECT-TYPE
    		SYNTAX  MacAddress  
		    MAX-ACCESS read-write
		    STATUS current
		    DESCRIPTION
		        " The mask of mac address "
		    ::= { fsVoiceVlanOuiEntry 2 }

fsVoiceVlanOuiDescription OBJECT-TYPE
    		SYNTAX  OCTET STRING (SIZE(0..30))
		    MAX-ACCESS read-write
		    STATUS current
		    DESCRIPTION
		        " The description of oui "
		    ::= { fsVoiceVlanOuiEntry 3 }

fsVoiceVlanOuiRowStatus OBJECT-TYPE
    		SYNTAX  RowStatus  
		    MAX-ACCESS read-write
		    STATUS current
		    DESCRIPTION
		        " Current operation status of the row  "
		    ::= { fsVoiceVlanOuiEntry 4 }

fsVoiceVlanEnabledId  OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            " Voice vlan enable status: enabled (2..4094), disabled (0xffffffff) "
        ::= { fsVoiceVlanMIBObjects 2 }

fsVoiceVlanPortEnableTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FSVoiceVlanPortEnableEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            " A list of voice vlan enable entries."
        ::= { fsVoiceVlanMIBObjects  3  }

fsVoiceVlanPortEnableEntry OBJECT-TYPE
        SYNTAX  FSVoiceVlanPortEnableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            " list of interface voice vlan enable status."
        INDEX   { fsVoiceVlanPortEnableIfIndex }		
        ::= { fsVoiceVlanPortEnableTable 1}

FSVoiceVlanPortEnableEntry ::=
        SEQUENCE {
		            fsVoiceVlanPortEnableIfIndex  IfIndex,
		            fsVoiceVlanPortStatus   EnabledStatus 
		    }

fsVoiceVlanPortEnableIfIndex OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            " "
--      REFERENCE "ifIndex in RFC1213"            
	      ::= { fsVoiceVlanPortEnableEntry 1 }

fsVoiceVlanPortStatus OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
             " Port voice vlan status"
        ::= { fsVoiceVlanPortEnableEntry 2 }

fsVoiceVlanAgingTime  OBJECT-TYPE
        SYNTAX  INTEGER (5..10000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            " Voice vlan aging time, the unit of which is minute"
	      DEFVAL      { 1440 }
        ::= { fsVoiceVlanMIBObjects  4 }

fsVoiceVlanSecurityState  OBJECT-TYPE
       SYNTAX  INTEGER
       {
        security (1),
        normal (2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            " Voice vlan security mode status "
        ::= { fsVoiceVlanMIBObjects 5 }

fsVoiceVlanCos  OBJECT-TYPE
        SYNTAX  INTEGER (0..7)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            " Voice vlan cos"
	      DEFVAL      { 6 }
        ::= { fsVoiceVlanMIBObjects  6 }    

fsVoiceVlanDscp  OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            " Voice vlan dscp"
	      DEFVAL      { 46 }
        ::= { fsVoiceVlanMIBObjects  7 }               

fsVoiceVlanPortModeTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FSVoiceVlanPortModeEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            " A list of voice vlan mode entries."
        ::= { fsVoiceVlanMIBObjects  8  }

fsVoiceVlanPortModeEntry OBJECT-TYPE
        SYNTAX  FSVoiceVlanPortModeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            " An entry containing voice vlan mode information,
            which is applicable to a voice vlan enabled interface."
        INDEX   { fsVoiceVlanPortIfIndex }		
        ::= { fsVoiceVlanPortModeTable 1}

FSVoiceVlanPortModeEntry ::=
        SEQUENCE {
		            fsVoiceVlanPortIfIndex  IfIndex ,
		            fsVoiceVlanPortMode	    INTEGER 
		    }

fsVoiceVlanPortIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            " The index of interface on which voice vlan function
            is enabled."
--      REFERENCE "ifIndex in RFC1213"            
	      ::= { fsVoiceVlanPortModeEntry 1 }

fsVoiceVlanPortMode OBJECT-TYPE
        SYNTAX  INTEGER
        	{
        	auto (1),
        	manual (2)
        	}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
             " Voice vlan configuration mode status, which is 
            applicable to a voice vlan enabled interface."
        ::= { fsVoiceVlanPortModeEntry 2 }

fsVoiceVlanMacTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FSVoiceVlanMacEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            " A list of telephone device entries."
        ::= { fsVoiceVlanMIBObjects  9  }

fsVoiceVlanMacEntry OBJECT-TYPE
        SYNTAX  FSVoiceVlanMacEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION 
            " An entry containing telephone device information,
            which is applicable to a voice vlan enabled interface."
        INDEX   { fsVoiceVlanMacAddress, fsVoiceVlanMacIfIndex }		
        ::= { fsVoiceVlanMacTable 1}

FSVoiceVlanMacEntry ::=
        SEQUENCE {
               fsVoiceVlanMacAddress         MacAddress,
               fsVoiceVlanMacIfIndex         IfIndex ,
               fsVoiceVlanMacDescription     OCTET STRING 
        }

fsVoiceVlanMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             " Mac address can be identified by voice vlan."
        ::= { fsVoiceVlanMacEntry 1 }

fsVoiceVlanMacIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION 
            " The index of interface on which voice vlan function
            is enabled."
--      REFERENCE "ifIndex in RFC1213"            
        ::= { fsVoiceVlanMacEntry 2 }

fsVoiceVlanMacDescription OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE(0..30))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " The description of telephone device."
        ::= { fsVoiceVlanMacEntry 3 }


fsVoiceVlanMIBConformance OBJECT IDENTIFIER ::= { fsVoiceVlanMIB 2 }
fsVoiceVlanMIBCompliances OBJECT IDENTIFIER ::= { fsVoiceVlanMIBConformance 1 }
fsVoiceVlanMIBGroups      OBJECT IDENTIFIER ::= { fsVoiceVlanMIBConformance 2 }


-- compliance statements

fsVoiceVlanMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Voice Vlan MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { 
                        fsVoiceVlanMIBGroup
                 }
         ::= { fsVoiceVlanMIBCompliances 1 }
         
-- units of conformance

fsVoiceVlanMIBGroup OBJECT-GROUP
        OBJECTS {
            fsVoiceVlanOuiAddress,
		        fsVoiceVlanOuiMask,
		        fsVoiceVlanOuiDescription,
		        fsVoiceVlanOuiRowStatus,
		        fsVoiceVlanEnabledId,
		        fsVoiceVlanPortStatus,
		        fsVoiceVlanAgingTime,
		        fsVoiceVlanSecurityState, 
		        fsVoiceVlanCos,
		        fsVoiceVlanDscp,
		        fsVoiceVlanPortMode,
                        fsVoiceVlanMacAddress,
                        fsVoiceVlanMacIfIndex,
                        fsVoiceVlanMacDescription
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing voice vlan managment."
        ::= { fsVoiceVlanMIBGroups 1 }
END
