-- *****************************************************************
-- QTECH-VLAN-MIB.mib:  Qtech VLAN MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI
        VlanId,
        PortList
                FROM Q-BRIDGE-MIB
        DisplayString,
        TEXTUAL-CONVENTION
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        MemberMap,
        IfIndex
                FROM QTECH-TC
        qtechMgmt
                FROM QTECH-SMI;

qtechVlanMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "Qtech Networks Co.,Ltd."
        CONTACT-INFO
                " 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech vlan mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 9}

qtechVlanMIBObjects OBJECT IDENTIFIER ::= { qtechVlanMIB 1 }

VlanList ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        vlans, with the first octet specifying vlans 1 through
        8, the second octet specifying vlans 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered vlan, and the least significant bit
        represents the highest numbered vlan.  Thus, each vlan
        of the bridge is represented by a single bit within the
        value of this object.  If that bit has a value of '1',
        then that vlan is included in the set of vlans; the vlan
        is not included if its bit has a value of '0'."
    SYNTAX      OCTET STRING
    
qtechVlanMaxNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of MAX vlans this system supported."
        ::= { qtechVlanMIBObjects 1 }

qtechVlanCurrentNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current vlans this system have."
        ::= { qtechVlanMIBObjects 2 }
    
qtechSystemMaxVID OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Max vlans of VID this system supported."
        ::= { qtechVlanMIBObjects 3 }    

-- qtechVlanIfConfigTable from the 10.3(4b3) has been abandoned. 
qtechVlanIfConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVlanIfConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "vlan table."
        ::= { qtechVlanMIBObjects 4 }
    
qtechVlanIfConfigEntry OBJECT-TYPE
        SYNTAX QtechVlanIfConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of vlan and it's port group table."
        INDEX { qtechVlanIfConfigIfIndex}
        ::= { qtechVlanIfConfigTable 1 }
    
QtechVlanIfConfigEntry ::=
        SEQUENCE {
        qtechVlanIfConfigIfIndex IfIndex,
        qtechVlanIfAccessVlan   VlanId,
        qtechVlanIfNativeVlan   VlanId,
        qtechVlanIfAllowedVlanList OCTET STRING
        }    
    
qtechVlanIfConfigIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            " "
        ::= { qtechVlanIfConfigEntry 1 }  

qtechVlanIfAccessVlan OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "The value indicate the VID of the vlan which that this port 
             belong to. This field is effective for only access port."
        ::= { qtechVlanIfConfigEntry 2 }          

qtechVlanIfNativeVlan OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "The value indicate the VID of the native vlan of that this port .
             This field is effective for only trunk port."
        ::= { qtechVlanIfConfigEntry 3 }                 
        
qtechVlanIfAllowedVlanList OBJECT-TYPE
        SYNTAX OCTET STRING(SIZE(512))
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "Each bit in every octet in octet string assigned to a vlan, the value of
             the bit indicates that if the vlan is belong to allowed vlan list of this 
             interface. It indicates that assigned vlan is member of allowed vlan list
             of this interface if value of the bit is 1. The lowest bit of first byte 
             correspond to vlan 1 and the lowest bit of second byte correspond to vlan 9
             vlan. This field is effective for only trunk port."
        ::= { qtechVlanIfConfigEntry 4 }        

 
--  qtechVlanTable from the 10.3(4b3) has been abandoned.   
qtechVlanTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVlanEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "vlan table."
        ::= { qtechVlanMIBObjects 5 }
    
qtechVlanEntry OBJECT-TYPE
        SYNTAX QtechVlanEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of vlan and it's distribution table."
        INDEX { qtechVlanVID }
        ::= { qtechVlanTable 1 }
    
QtechVlanEntry ::=
        SEQUENCE {
        qtechVlanVID VlanId,
        qtechVlanPortMemberAction MemberMap,
        qtechVlanApMemberAction MemberMap,
        qtechVlanAlias DisplayString,
        qtechVlanEntryStatus ConfigStatus
        }
    
qtechVlanVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "VID of vlan ."
        ::= { qtechVlanEntry 1 }
 
qtechVlanPortMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Each octet in member map assigned to a physical port, the value of
             the octect indicates the action of a physical port in the
             vlan. Drop(1) indicate that the vlan doesn't include this physical port, 
             Add(2) indicate that the vlan include this physical port."
        ::= { qtechVlanEntry 2 }
        
qtechVlanApMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Each octet in member map assigned to a aggreate port, the value of
             the octect indicates the action of a aggreate port in the
            vlan. Drop(1) indicate that the vlan doesn't include this physical port, 
             Add(2) indicate that the vlan include this physical port."
        ::= { qtechVlanEntry 3 }        
        
qtechVlanAlias OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..32))
        MAX-ACCESS read-create
        STATUS obsolete
        DESCRIPTION
            "Vlan's alias ."
        DEFVAL{""}   
        ::= { qtechVlanEntry 4 }
                
qtechVlanEntryStatus OBJECT-TYPE
        SYNTAX ConfigStatus
        MAX-ACCESS read-create
        STATUS obsolete
        DESCRIPTION
            "Status of this entry, set this object to valid will creat a vlan of this entry,
             and set its value to invalid will delete the vlan of this entry."
        ::= { qtechVlanEntry 5 }

-- qtechVlanPortConfigTable from the 10.3(4b3) was started to support.   
--The table of VLAN members    
qtechVlanPortConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVlanPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of VLAN members."
        ::= { qtechVlanMIBObjects 6 }
    
qtechVlanPortConfigEntry OBJECT-TYPE
        SYNTAX QtechVlanPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of ports."
        INDEX { qtechVlanPortConfigIndex}
        ::= { qtechVlanPortConfigTable 1 }
    
QtechVlanPortConfigEntry ::=
        SEQUENCE {
        qtechVlanPortConfigIndex IfIndex,
        qtechVlanPortConfigMode INTEGER,
        qtechVlanPortAccessVlan   VlanId,
        qtechVlanPortNativeVlan   VlanId,
        qtechVlanPortAllowedVlanList VlanList,
        qtechIfVlanID Integer32
        }
        
--the index of port    
qtechVlanPortConfigIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "port index"
        ::= { qtechVlanPortConfigEntry 1 }
        
--The port mode, read-only, in QTECH-INTERFACE-MIB.mib can be set up.       
qtechVlanPortConfigMode OBJECT-TYPE
        SYNTAX INTEGER {
            access(1), -- the mode of interface is access port
            trunk(2),  -- the mode of interface is trunk port
            dot1q-tunnel(3),   --  the mode of interface is 802.1q tunnel port
            hybrid(4), -- the mode of interface is hybrid port
		  		  other(5), -- the mode of interface is unknow port
		  		  uplink(6), -- the mode of interface is uplink port
		  		  host(7),  -- the mode of interface is private host port
		  		  promiscuous(8) -- the mode of interface is private promiscuous port
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Port mode, indicates that port is an 
             access(1), trunk(2), dot1q-tunnel(3), 
             hybrid(4), other(5), uplink(6), 
		  		   host(7) or promiscuous(8) port."
        ::= { qtechVlanPortConfigEntry 2 }
        
qtechVlanPortAccessVlan OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value indicate the VID of the vlan which that this port 
             belong to. This field is effective for only access port."
        ::= { qtechVlanPortConfigEntry 3 }

qtechVlanPortNativeVlan OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value indicate the VID of the native vlan of that this port .
             This field is effective for only trunk,hybrid,uplink and dot1q_tunnel port."
        ::= { qtechVlanPortConfigEntry 4 }
    
qtechVlanPortAllowedVlanList OBJECT-TYPE
        SYNTAX VlanList
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Each octet within this value specifies a set of eight
             vlans, with the first octet specifying vlans 0 through
             7, the second octet specifying vlans 8 through 15, etc.
             Within each octet, the most significant bit represents
             the lowest numbered vlan, and the least significant bit
             represents the highest numbered vlan.  Thus, each vlan
             of the bridge is represented by a single bit within the
             value of this object.  If that bit has a value of '1',
             then that vlan is included in the set of vlans; the vlan
             is not included if its bit has a value of '0'"
        ::= { qtechVlanPortConfigEntry 5 }

qtechIfVlanID OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value indicates the VID of the vlan which that this port 
             belong to or of the native vlan of this port. 
	     This field is effective for only access, trunk, 
	     hybrid, uplink and dot1q_tunnel port."
        ::= { qtechVlanPortConfigEntry 6 }

-- qtechVlanConfigTable from the 10.3(4b3) was started to support.        
qtechVlanConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVlanConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "vlan table."
        ::= { qtechVlanMIBObjects 7 }
    
qtechVlanConfigEntry OBJECT-TYPE
        SYNTAX QtechVlanConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of vlan and it's distribution table."
        INDEX { qtechVlanConfigVID }
        ::= { qtechVlanConfigTable 1 }
    
QtechVlanConfigEntry ::=
        SEQUENCE {
        qtechVlanConfigVID VlanId,
        qtechVlanConfigAction Integer32,
        qtechVlanConfigName DisplayString,
        qtechVlanConfigPortMember PortList
        }
   
qtechVlanConfigVID OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "VID of vlan ."
        ::= { qtechVlanConfigEntry 1 }
      
qtechVlanConfigAction OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value 1 to create a vlan, 0 to delete a vlan."
        ::= { qtechVlanConfigEntry 2 }
      
qtechVlanConfigName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "vlan name."
        ::= { qtechVlanConfigEntry 3 }
 
qtechVlanConfigPortMember OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Each octet within this value specifies a set of eight
             ports, with the first octet specifying ports 1 through
             8, the second octet specifying ports 9 through 16, etc.
             Within each octet, the most significant bit represents
             the lowest numbered port, and the least significant bit
             represents the highest numbered port.  Thus, each port
             of the bridge is represented by a single bit within the
             value of this object.  If that bit has a value of '1',
             then that port is included in the set of ports; the port
             is not included if its bit has a value of '0'."
        ::= { qtechVlanConfigEntry 4 }


qtechVlanMIBConformance OBJECT IDENTIFIER ::= { qtechVlanMIB 2 }
qtechVlanMIBCompliances OBJECT IDENTIFIER ::= { qtechVlanMIBConformance 1 }
qtechVlanMIBGroups      OBJECT IDENTIFIER ::= { qtechVlanMIBConformance 2 }


-- compliance statements

qtechVlanMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech Vlan MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { qtechVlanMIBGroup
                 }
        ::= { qtechVlanMIBCompliances 1 }
                
-- units of conformance

qtechVlanMIBGroup OBJECT-GROUP
        OBJECTS {
           qtechVlanMaxNumber,
           qtechVlanCurrentNumber,
           qtechSystemMaxVID,
--           qtechVlanIfConfigIfIndex,
           qtechVlanIfAccessVlan,
           qtechVlanIfNativeVlan,
           qtechVlanIfAllowedVlanList,
           qtechVlanVID,
           qtechVlanApMemberAction,
           qtechVlanPortMemberAction,
           qtechVlanAlias,
           qtechVlanEntryStatus,  
--           qtechManageVlanVID,
--           qtechPortDefaultVIDPortIndex,
--           qtechPortDefaultVID,
--           qtechVlanPortConfigIndex,
           qtechVlanPortConfigMode,
           qtechVlanPortAccessVlan,
           qtechVlanPortNativeVlan,
           qtechVlanPortAllowedVlanList,
           qtechIfVlanID,
           qtechVlanConfigVID,
           qtechVlanConfigAction,
           qtechVlanConfigName,
           qtechVlanConfigPortMember                    
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing vlan configure ."
        ::= { qtechVlanMIBGroups 1 }         
END
