--MibName=rcVlan
-- *****************************************************************
-- RAISECOM-VLAN-MIB.MIB:  Raisecom VLAN MIB file
-- April,2008,guoxiaodan,add PortBasedVlan and QinQVlanTranslation definition
-- FEB 2005, xieyong
--
-- Copyright (c) 1994-2004 by Raisecom, Inc.
-- All rights reserved.
--
-- *****************************************************************
SWITCH-VLAN-MIB  DEFINITIONS ::= BEGIN

IMPORTS
        iscomSwitch
                                          FROM RAISECOM-BASE-MIB
        MacAddress,
        RowStatus
                                          FROM SNMPv2-TC
        Vlanset, PortList, EnableVar      FROM SWITCH-TC
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32                         FROM SNMPv2-SMI
        SnmpAdminString                   FROM SNMP-FRAMEWORK-MIB;


	rcVlan MODULE-IDENTITY
        LAST-UPDATED    "200502220000Z"
        ORGANIZATION    "Raisecom, Inc."
        CONTACT-INFO
                "       Raise Systems

                Postal: Beijing,
                        China

                   Tel: 86-010-82884499

                E-mail: support@raisecom.com"
        DESCRIPTION
                "description of vlan object."
                ::= { iscomSwitch 19}

-- -------------------------------------------------------------
-- groups in the SWITCH-VLAN MIB
-- -------------------------------------------------------------

switchportConfig  OBJECT IDENTIFIER ::= { rcVlan 1 }
dot1qConfig       OBJECT IDENTIFIER ::= { rcVlan 2 }
rcPortBasedVlanTable   OBJECT-TYPE
       SYNTAX      SEQUENCE OF PortBasedVlanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Forwarding portlist table."
      ::= { rcVlan 3 } 
      
rcQinQVlanPortTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF QinQVlanPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "QinQ Vlan Mapping Port table."
      ::= { rcVlan 4 }
    
rcQinQVlanTranslationTable   OBJECT-TYPE
       SYNTAX      SEQUENCE OF QinQVlanTranslationEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Inner Vlan Mapping Configure table."
      ::= { rcVlan 5 }

-- -------------------------------------------------------------
-- The Switchport VLAN Configuration Table
-- -------------------------------------------------------------
    rcVlanPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcVlanPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Vlan port configuration table."
        ::= { switchportConfig 1 }

    rcVlanPortEntry OBJECT-TYPE
        SYNTAX RcVlanPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Vlan port configuration table entry."
        INDEX { rcVlanPortId }
        ::= { rcVlanPortTable 1 }

    RcVlanPortEntry ::= SEQUENCE {
        rcVlanPortId                              INTEGER,
        rcVlanPortMode                            INTEGER,
        rcVlanPortAccessVlanId                    INTEGER,
        rcVlanPortHybridVlanAllow                 Vlanset,
        rcVlanPortHybridVlanUntag                 Vlanset,
        rcVlanPortTrunkVlanAllow                  Vlanset,
        rcVlanPortVlanNative                      INTEGER,
        rcVlanPortTrunkTagNativeEnable            EnableVar,
		rcVlanPortServiceEtherType                INTEGER,
		rcVlanPortIngressVlanTranslateEnable      EnableVar,
		rcVlanPortEgressVlanTranslateEnable       EnableVar,
		rcVlanPortEgressVlanTranslateOffset       INTEGER,
		rcVlanPortAcceptFrameType                 INTEGER,
		rcVlanPortIngressFiltering                EnableVar,
		rcVlanPortSvlVlans						  Vlanset
     }

    rcVlanPortId OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index based 1 that uniquely identifies a switch port."
        ::= { rcVlanPortEntry 1 }

    rcVlanPortMode OBJECT-TYPE
        SYNTAX  INTEGER  {
                 access(2),
                 hybrid(3),
                 trunk(4),
                 dot1q-tunnel(5),
                 hybrid-dt(6),
                 trunk-dt(7),
                 hybrid-tn(8)
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Vlan port mode."
        ::= { rcVlanPortEntry 2 }

    rcVlanPortAccessVlanId OBJECT-TYPE
        SYNTAX  INTEGER  (1..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Access vlan id, when port is in access or tunnel mode."
        ::= { rcVlanPortEntry 3 }

    rcVlanPortHybridVlanAllow OBJECT-TYPE
        SYNTAX  Vlanset
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Allowed vlans when port is in hybrid mode."
        ::= { rcVlanPortEntry 4 }

    rcVlanPortHybridVlanUntag OBJECT-TYPE
        SYNTAX  Vlanset
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Untagged vlans when port is in hybrid mode."
        ::= { rcVlanPortEntry 5 }

    rcVlanPortTrunkVlanAllow OBJECT-TYPE
        SYNTAX  Vlanset
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Allowed vlans when port is in trunk mode."
        ::= { rcVlanPortEntry 6 }

    rcVlanPortVlanNative OBJECT-TYPE
        SYNTAX  INTEGER (1..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Native vlan when port is in trunk or hybrid mode."
        ::= { rcVlanPortEntry 7 }

    rcVlanPortTrunkTagNativeEnable OBJECT-TYPE
        SYNTAX  EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable or disable tagging native vlan packets when port is in trunking mode."
        ::= { rcVlanPortEntry 8 }

    rcVlanPortServiceEtherType OBJECT-TYPE
        SYNTAX  INTEGER  (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Provider vlan S-TAG(Service Tag) type."
        ::= { rcVlanPortEntry 9 }

    rcVlanPortIngressVlanTranslateEnable OBJECT-TYPE
        SYNTAX  EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable or disable ingress vlan translate."
        ::= { rcVlanPortEntry 10 }

    rcVlanPortEgressVlanTranslateEnable OBJECT-TYPE
        SYNTAX  EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable or disable egress vlan translate."
        ::= { rcVlanPortEntry 11 }

    rcVlanPortEgressVlanTranslateOffset OBJECT-TYPE
        SYNTAX  INTEGER  (1..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Vlan translate offset value."
       ::= { rcVlanPortEntry 12 }

    rcVlanPortAcceptFrameType OBJECT-TYPE
        SYNTAX  INTEGER{all(1),
                        tag(2),
                        untag(3)
                       }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Accept frame type."
        ::= { rcVlanPortEntry 13 }

    rcVlanPortIngressFiltering OBJECT-TYPE
        SYNTAX  EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable or disable ingress filtering."
        ::= { rcVlanPortEntry 14 }       
        
    rcVlanPortSvlVlans OBJECT-TYPE
        SYNTAX  Vlanset
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "svl vlan list."
        ::= { rcVlanPortEntry 15 }

-- -------------------------------------------------------------
-- The Switchport VLAN Mapping Configuration Table
-- -------------------------------------------------------------
    rcVlanMappingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcVlanMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Vlan Mapping configuration table."
        ::= { switchportConfig 2 }

    rcVlanMappingEntry OBJECT-TYPE
        SYNTAX RcVlanMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Vlan Mapping configuration table entry."
        INDEX { rcVlanMappingPortId,rcVlanMappingInnerVlanId }
        ::= { rcVlanMappingTable 1 }

    RcVlanMappingEntry ::= SEQUENCE {
        rcVlanMappingPortId                    INTEGER,
        rcVlanMappingInnerVlanId               INTEGER,
        rcVlanMappingOuterVlanId               INTEGER,
        rcVlanMappingHwStatus                  EnableVar,
        rcVlanMappingRowStatus                 RowStatus
     }

    rcVlanMappingPortId OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index based 1 that uniquely identifies a switch port."
        ::= { rcVlanMappingEntry 1 }

    rcVlanMappingInnerVlanId OBJECT-TYPE
        SYNTAX  INTEGER  (1..4094)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "the inner VLAN ID entering the switch from the customer network. The range is from 1 to 4094."
        ::= { rcVlanMappingEntry 2 }

    rcVlanMappingOuterVlanId OBJECT-TYPE
        SYNTAX  INTEGER  (1..4094)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object specifies the assigned added outer VLAN ID."
        ::= { rcVlanMappingEntry 3 }

    rcVlanMappingHwStatus OBJECT-TYPE
        SYNTAX  EnableVar
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "In hardware or not."
        ::= { rcVlanMappingEntry 4 }

    rcVlanMappingRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object indicates the status of this entry."
        ::= { rcVlanMappingEntry 5 }
    
-- -------------------------------------------------------------
-- The Static VLAN Database
-- -------------------------------------------------------------
rDot1qVlanStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RDot1qVlanStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing static configuration information for
        each VLAN configured into the device by (local or
        network) management.  All entries are permanent and will
        be restored after the device is reset."
    ::= { dot1qConfig 1 }

rDot1qVlanStaticEntry OBJECT-TYPE
    SYNTAX      RDot1qVlanStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Static information for a VLAN configured into the
        device by (local or network) management."
    INDEX   { rDot1qVlanIndex }
    ::= { rDot1qVlanStaticTable 1 }

RDot1qVlanStaticEntry ::=
    SEQUENCE {
        rDot1qVlanIndex
            INTEGER,
        rDot1qVlanStaticName
            SnmpAdminString,
        rDot1qVlanStaticEgressPorts
            PortList,    
        rDot1qVlanStaticUntaggedPorts
            PortList,
        rDot1qVlanStaticActiveStatus
            INTEGER,
        rDot1qVlanStaticRowStatus
            RowStatus,    
        rDot1qVlanStaticPriority
        	INTEGER
    }

rDot1qVlanIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..4094)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VLAN-ID or other identifier refering to this VLAN."
    ::= { rDot1qVlanStaticEntry 1 }

rDot1qVlanStaticName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "An administratively assigned string, which may be used
        to identify the VLAN."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.10.2.1"
    ::= { rDot1qVlanStaticEntry 2 }

rDot1qVlanStaticEgressPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The set of ports which are permanently assigned to the
        egress list for this VLAN by management.  Changes to a
        bit in this object affect the per-port per-VLAN
        Registrar control for Registration Fixed for the
        relevant GVRP state machine on each port.  A port may
        not be added in this set if it is already a member of
        the set of ports in dot1qVlanForbiddenEgressPorts.  The
        default value of this object is a string of zeros of
        appropriate length, indicating not fixed."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.7.7.3, 11.2.3.2.3"
    ::= { rDot1qVlanStaticEntry 3 }

rDot1qVlanStaticUntaggedPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The set of ports which should transmit egress packets
        for this VLAN as untagged.  The default value of this
        object for the default VLAN (dot1qVlanIndex = 1) is a string
        of appropriate length including all ports.  There is no
       specified default for other VLANs.  If a device agent cannot
        support the set of ports being set then it will reject the
        set operation with an error. An example might be if a
        manager attempts to set more than one VLAN to be untagged
        on egress where the device does not support this IEEE 802.1Q
        option."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.10.2.1"
    ::= { rDot1qVlanStaticEntry 4 }

rDot1qVlanStaticActiveStatus OBJECT-TYPE
    SYNTAX      INTEGER  {
                  active(1),
                  suspend(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the active status of this entry."
    ::= { rDot1qVlanStaticEntry 5 }


rDot1qVlanStaticRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the status of this entry."
    ::= { rDot1qVlanStaticEntry 6 }

rDot1qVlanStaticPriority OBJECT-TYPE
    SYNTAX      INTEGER(-1..7)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the priority of the VLAN."
    ::= { rDot1qVlanStaticEntry 7 } 
    
-- -------------------------------------------------------------
-- Double tagging vlan
-- -------------------------------------------------------------
rcVlanDtEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "Indicates whether the double tagging feature is enabled on the device.
            enable(1) means that the double tagging feature is enabled on this device.
            disable(2) means that the double tagging feature is disabled."
        ::= { dot1qConfig 2 }
        
rcVlanDtOuterTpid OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "TPID of outer tag, when switch is in double tagging mode."
        ::= { dot1qConfig 3 }

-- -------------------------------------------------------------
-- forwarding port 
-- -------------------------------------------------------------
rcPortBasedVlanEntry OBJECT-TYPE
       SYNTAX      PortBasedVlanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the rcPortBasedVlanTable."
       INDEX {
               rcPortBasedVlanIndex
             }
       ::= { rcPortBasedVlanTable 1 }   
       
       PortBasedVlanEntry ::=
       SEQUENCE {
         rcPortBasedVlanIndex               INTEGER,
         rcPortBasedVlanPortlist            PortList
         }
             
    rcPortBasedVlanIndex OBJECT-TYPE
       SYNTAX      INTEGER
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "An index based 1 that uniquely identifies a switch port."
       --DEFVAL { {} }
       ::= { rcPortBasedVlanEntry 1 }
       
    rcPortBasedVlanPortlist OBJECT-TYPE
       SYNTAX      PortList
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "Record the egress forwarding port table.A bit mask corresponding to the physical ports on the
          chip.Set corresponding bit to 1 to enable port egress forwarding. Set bit to 0 inhibits the port 
          egress forwarding."
       DEFVAL {{}}
       ::= { rcPortBasedVlanEntry 2 }
 rcQinQVlanPortEntry OBJECT-TYPE
       SYNTAX      QinQVlanPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the rcQinQVlanPortTable."
       INDEX {
               rcPortBasedVlanIndex
             }
       ::= { rcQinQVlanPortTable 1 }   
       
       QinQVlanPortEntry ::=
       SEQUENCE {
         rcQinQVlanPortIndex           INTEGER,
         rcVlanTranslationStatus           INTEGER
         }
             
    rcQinQVlanPortIndex OBJECT-TYPE
       SYNTAX      INTEGER
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "An index based 1 that uniquely identifies a switch port."
       --DEFVAL { {} }
       ::= { rcQinQVlanPortEntry 1 }
       
    rcVlanTranslationStatus OBJECT-TYPE
       SYNTAX  INTEGER{
                      enabled(1),        
                      disabled(2)}
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "Indicates whether this VLAN translation is 
 	      functioning on the port."
       DEFVAL {{}}
       ::= { rcQinQVlanPortEntry 2 }

 rcQinQVlanTranslationEntry OBJECT-TYPE
       SYNTAX      QinQVlanTranslationEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the rcQinQVlanPortTable."
       INDEX {
               rcVlanTranslationIndex
             }
       ::= { rcQinQVlanTranslationTable 1 }   
       
       QinQVlanTranslationEntry ::=
       SEQUENCE {
         rcVlanTranslationIndex           Unsigned32,
         rcVlanTranslatedNum             Unsigned32, 
         rcVlanTranslationRowStatus       RowStatus
         }
             
    rcVlanTranslationIndex OBJECT-TYPE
       SYNTAX      Unsigned32(1..4094)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The VLAN translation is applied in the ingress Layer 2 port.
           It makes the	traffic arriving on the VLAN with this VLAN 
           ID to be mapped to or tagged with the corresponding instance 
 	       of rcVlanMappingNum on the device. "
       --DEFVAL { {} }
       ::= { rcQinQVlanTranslationEntry 1 } 
       
    rcVlanTranslatedNum   OBJECT-TYPE
       SYNTAX      Unsigned32(1..4094)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "The VLAN translation is applied in the ingress
           Layer 2 port. It makes the traffic arriving on
           the VLAN with the corresponding instance of 
           rcVlanMappingIndex on the device to be mapped
           to or tagged with the VLAN of this VLAN ID."
       ::= { rcQinQVlanTranslationEntry 2 }  
    rcVlanTranslationRowStatus   OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The status of the conceptual row for this global
 	       VLAN translation."
       ::= { rcQinQVlanTranslationEntry 3 }       
       
END
