DLINK-3100-vlan-MIB DEFINITIONS ::= BEGIN

-- Version:    7.46
-- Date:       15 Jan 2007
--
-- 26-Oct-2004 Added
--              vlanDynamicVlanSupported
--              vlanDynamicVlanTable
--              vlanPortModeExtTable
--              vlanPrivateSupported
--              vlanPrivateTable
--              vlanPrivateCommunityTable
-- 01-Jul-2005 Added vlanMulticastTvTable
-- 14-Jul-2005 Added vlanMacBaseVlan group
-- 19-Jul-2005  Added
--              vlanPrivateEdgeGroupTable
--              vlanPrivateEdgeGroupIfIndexTable
-- 14-Jul-2005 Added
--              vlanSubnetRangeTable
--              vlanSubnetPortTable
-- 20-Jul-2005 Added
--              vlanSubnetRangeTable
--              vlanSubnetPortTable
-- 30-Nov-2005 Added
--              vlanTriplePlayTable
--              vlanTriplePlayMulticastTvTable
-- 21-Nov-2006 Added vlanVoice
-- 15-Jan-2007 Devided file appolo.txt to a few files
--             Renamed file appolo.txt to ralan-mib.mib
-- 11-Feb-2007 (VeredK) Added default vlan tagged ports MIBs
-- 29-Sep-2008 Added Default VLAN membership enabled ports
-- 16-Oct-2008 (ShaharG) Added DIPO Asymmetric vlan MIB

IMPORTS
    rnd                                         FROM DLINK-3100-MIB
    DisplayString, TruthValue, RowStatus,
    MacAddress                                  FROM SNMPv2-TC
    VlanIndex, dot1qVlanIndex, PortList         FROM Q-BRIDGE-MIB
    ifIndex                                     FROM IF-MIB
    dot1dBasePort                               FROM BRIDGE-MIB
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress     FROM SNMPv2-SMI
    InetAddressType                             FROM INET-ADDRESS-MIB;

vlan MODULE-IDENTITY
              LAST-UPDATED "200602120000Z"
              ORGANIZATION "Dlink, Inc."
              CONTACT-INFO
                      "www.dlink.com"
              DESCRIPTION
                      "The private MIB module definition for IP Multicast support in DLINK-3100 devices."
              REVISION "200602120000Z"
              DESCRIPTION
                       "Editorial changes to support new MIB compilers."
               REVISION "200404190000Z"
              DESCRIPTION
                      "Initial version of this MIB."
          ::= { rnd 48 }

vlanMibVersion OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "MIB's version :
           Version 2: the current VLAN MIB replaced the previous one;
           Version 3: field vlanPortForbiddenEgressPort was added.
           Version 4: dot1q and dot1v supported
           Version 5: Private Edge Vlan
                        vlanPrivateEdgeSupported
                        vlanPrivateEdgeMibVersion
                        vlanPrivateEdgeTable"
    ::= { vlan 1 }

vlanMaxTableNumber OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Maximum number of VLAN Tables supported by the device."
    ::= { vlan 2 }

vlanNameTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanNameEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table translates Vlan name to Vlan's tag and ifindex"
    ::= { vlan 21 }

vlanNameEntry OBJECT-TYPE
    SYNTAX      VlanNameEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The row definition for this table."
    INDEX { vlanNameName  }
    ::= { vlanNameTable 1 }

VlanNameEntry ::= SEQUENCE {
    vlanNameName          DisplayString,
    vlanNameTag           INTEGER,
    vlanNameIfIndex       INTEGER
}

vlanNameName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Vlan's name"
    ::=  { vlanNameEntry 1 }

vlanNameTag OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Vlan's tag"
    ::=  { vlanNameEntry 2 }

vlanNameIfIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Vlan's ifindex"
    ::=  { vlanNameEntry 3 }

vlanPortModeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPortModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table hold information on port status trunk or access"
    ::= { vlan 22 }

vlanPortModeEntry OBJECT-TYPE
    SYNTAX      VlanPortModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The row definition for this table."
    INDEX { ifIndex }
    ::= { vlanPortModeTable 1 }

VlanPortModeEntry ::= SEQUENCE {
    vlanPortModeState      INTEGER
}

vlanPortModeState OBJECT-TYPE
   SYNTAX       INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The port state, 1 is generic cli"
    ::=  { vlanPortModeEntry 1 }

vlanSendUnknownToAllPorts OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If a value of the parameter is true a frame with unknown
         destination MAC address sent by the Layer 3 to a VLAN will be
         sent to all ports of the VLAN.
         If a value of the parameter is false a frame with unknown
         destination MAC address sent by the Layer 3 to a VLAN will be
         discarded."
    DEFVAL { true }
    ::= { vlan 27 }

vlanDefaultSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "supported or not default vlan."
    ::= { vlan 29 }

vlanDot1vSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "802.1v standard for vlan per port and protocol."
    ::= { vlan 31 }

vlanDefaultEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "if supported default vlan , indicate enabled or disabled"
    ::= { vlan 32 }

vlanSpecialTagTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanSpecialTagEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "special vlan tag used for this port"
    ::= { vlan 33 }

vlanSpecialTagEntry OBJECT-TYPE
    SYNTAX      VlanSpecialTagEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of special tag"
    INDEX   { ifIndex  }
    ::= { vlanSpecialTagTable 1 }

VlanSpecialTagEntry ::= SEQUENCE {
        vlanSpecialTagVID     VlanIndex,
        vlanSpecialTagStatus  RowStatus
    }

vlanSpecialTagVID OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "specify the special vlan tag ."
    ::= { vlanSpecialTagEntry  1 }

vlanSpecialTagStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanSpecialTagEntry 2 }

vlanSpecialTagCurrentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanSpecialTagCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "special Current vlan tag used for this port"
    ::= { vlan 34 }

vlanSpecialTagCurrentEntry OBJECT-TYPE
    SYNTAX      VlanSpecialTagCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of Current special tag"
    INDEX   { ifIndex  }
    ::= { vlanSpecialTagCurrentTable 1 }

VlanSpecialTagCurrentEntry ::= SEQUENCE {
        vlanSpecialTagCurrentVID      VlanIndex,
        vlanSpecialTagCurrentReserved TruthValue,
        vlanSpecialTagCurrentActive   TruthValue
    }

vlanSpecialTagCurrentVID OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify the special vlan tag ."
    ::= { vlanSpecialTagCurrentEntry  1 }

vlanSpecialTagCurrentReserved OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify if the special vlan tag is reserved ."
    ::= { vlanSpecialTagCurrentEntry  2 }

vlanSpecialTagCurrentActive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify if the special vlan tag is used ."
    ::= { vlanSpecialTagCurrentEntry  3 }

vlanPrivateEdgeSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "is private edge supported."
    ::= { vlan 35 }

vlanPrivateEdgeVersion OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "private edge version."
    ::= { vlan 36 }

vlanPrivateEdgeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPrivateEdgeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for pve port and uplink"
    ::= { vlan 37 }

vlanPrivateEdgeEntry OBJECT-TYPE
    SYNTAX      VlanPrivateEdgeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of pve"
    INDEX   { ifIndex  }
    ::= { vlanPrivateEdgeTable 1 }

VlanPrivateEdgeEntry ::= SEQUENCE {
        vlanPrivateEdgeUplink  INTEGER,
        vlanPrivateEdgeStatus  RowStatus
    }

vlanPrivateEdgeUplink OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "specify the uplink port."
    ::= { vlanPrivateEdgeEntry  1 }

vlanPrivateEdgeStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanPrivateEdgeEntry 2 }

vlanDynamicVlanSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "is DynamicVlanVlan supported."
    ::= { vlan 38 }

vlanDynamicVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanDynamicVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for DynamicVlan"
    ::= { vlan 39 }

vlanDynamicVlanEntry OBJECT-TYPE
    SYNTAX      VlanDynamicVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of DynamicVlan"
    INDEX   { vlanDynamicVlanMacAddress  }
    ::= { vlanDynamicVlanTable 1 }

VlanDynamicVlanEntry ::= SEQUENCE {
        vlanDynamicVlanMacAddress  MacAddress,
        vlanDynamicVlanTag     VlanIndex,
        vlanDynamicVlanStatus      RowStatus
    }

vlanDynamicVlanMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "mac address "
    ::= { vlanDynamicVlanEntry  1 }

vlanDynamicVlanTag OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "vlan Tag"
    ::= { vlanDynamicVlanEntry  2 }

vlanDynamicVlanStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanDynamicVlanEntry 3 }

vlanPortModeExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPortModeExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table hold information on port status trunk or access"
    ::= { vlan 40 }

vlanPortModeExtEntry OBJECT-TYPE
    SYNTAX      VlanPortModeExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The row definition for this table."
    INDEX { ifIndex }
    ::= { vlanPortModeExtTable 1 }

VlanPortModeExtEntry ::= SEQUENCE {
    vlanPortModeExtState      INTEGER,
    vlanPortModeExtStatus     RowStatus
}

vlanPortModeExtState OBJECT-TYPE
   SYNTAX       INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The ext"
    ::=  { vlanPortModeExtEntry 1 }

vlanPortModeExtStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanPortModeExtEntry 2 }

vlanPrivateSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "is private vlan supported."
    ::= { vlan 41 }

vlanPrivateTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPrivateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for PrivateVlan"
    ::= { vlan 42 }

vlanPrivateEntry OBJECT-TYPE
    SYNTAX      VlanPrivateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of PrivateVlan"
    INDEX   { dot1qVlanIndex  }
    ::= { vlanPrivateTable 1 }

VlanPrivateEntry ::= SEQUENCE {
        vlanPrivateIsolatedVlanTag  INTEGER,
        vlanPrivateStatus           RowStatus
    }

vlanPrivateIsolatedVlanTag OBJECT-TYPE
    SYNTAX      INTEGER (0..4094)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "vlan Tag"
    ::= { vlanPrivateEntry  1 }

vlanPrivateStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanPrivateEntry 2 }

vlanPrivateCommunityTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPrivateCommunityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for PrivateVlan"
    ::= { vlan 43 }

vlanPrivateCommunityEntry OBJECT-TYPE
    SYNTAX      VlanPrivateCommunityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of PrivateVlan"
    INDEX   { dot1qVlanIndex, vlanPrivateCommunityVlanTag  }
    ::= { vlanPrivateCommunityTable 1 }

VlanPrivateCommunityEntry ::= SEQUENCE {
        vlanPrivateCommunityVlanTag  VlanIndex,
        vlanPrivateCommunityStatus   RowStatus
    }

vlanPrivateCommunityVlanTag OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "vlan Tag"
    ::= { vlanPrivateCommunityEntry  1 }

vlanPrivateCommunityStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanPrivateCommunityEntry 2 }

vlanMulticastTvTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanMulticastTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " multicast vlan used for this port"
    ::= { vlan 44 }

vlanMulticastTvEntry OBJECT-TYPE
    SYNTAX      VlanMulticastTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of multicast tag"
    INDEX   { ifIndex  }
    ::= { vlanMulticastTvTable 1 }

VlanMulticastTvEntry ::= SEQUENCE {
        vlanMulticastTvVID     VlanIndex,
        vlanMulticastTvStatus  RowStatus
    }

vlanMulticastTvVID OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "specify the TV vlan tag, vlan must exist ."
    ::= { vlanMulticastTvEntry  1 }

vlanMulticastTvStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanMulticastTvEntry 2 }

-- -------------------------------------------------------------
-- vlanMacBaseVlan group
-- -------------------------------------------------------------

vlanMacBaseVlanGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanMacBaseVlanGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains mappings from Range of MAC
         addresses to Group Identifiers used for
         MAC-based VLAN Classification."
    ::= { vlan 45 }

vlanMacBaseVlanGroupEntry OBJECT-TYPE
    SYNTAX      VlanMacBaseVlanGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping from a Range of MAC addresses to a
         Group Identifier."
    INDEX       { vlanMacBaseVlanMacAddress,
                  vlanMacBaseVlanMacMask }
    ::= { vlanMacBaseVlanGroupTable 1 }

VlanMacBaseVlanGroupEntry ::=
    SEQUENCE {
        vlanMacBaseVlanMacAddress
            MacAddress,
        vlanMacBaseVlanMacMask
            INTEGER,
        vlanMacBaseVlanGroupId
            INTEGER,
        vlanMacBaseVlanGroupRowStatus
            RowStatus
    }

vlanMacBaseVlanMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The base MAC address of the range."
    REFERENCE
        "IEEE 802.1v clause 8.6.2"
    ::= { vlanMacBaseVlanGroupEntry 1 }

vlanMacBaseVlanMacMask OBJECT-TYPE
    SYNTAX      INTEGER (9..48)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Mask of the range.
        The mask determains the leading '1' bits of the mask (MSB).
        48 means single HOST and 9 means the widest range.
        The MASK is limited to 9 to avoid entring ranges including
        multicast addresses.
        "
    ::= { vlanMacBaseVlanGroupEntry 2 }

vlanMacBaseVlanGroupId OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Represents a group of ranges of MAC addresses
         that are associated together when assigning a
         VID to a frame."
    ::= { vlanMacBaseVlanGroupEntry 3 }

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

vlanMacBaseVlanPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanMacBaseVlanPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains VID sets used for
         MAC-based VLAN Classification."
    ::= { vlan 46 }

vlanMacBaseVlanPortEntry OBJECT-TYPE
    SYNTAX      VlanMacBaseVlanPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A VID set for a port and group."
    INDEX       { dot1dBasePort,
                  vlanMacBaseVlanPortGroupId }
    ::= { vlanMacBaseVlanPortTable 1 }

VlanMacBaseVlanPortEntry ::=
    SEQUENCE {
        vlanMacBaseVlanPortGroupId
            INTEGER,
        vlanMacBaseVlanPortGroupVid
            VlanIndex,
        vlanMacBaseVlanPortRowStatus
            RowStatus
    }

vlanMacBaseVlanPortGroupId OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Designates a group of Ranges in the ranges
         Group Database."
    ::= { vlanMacBaseVlanPortEntry 1 }

vlanMacBaseVlanPortGroupVid OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The VID associated with a group of range MAC addresses for
         each port."
    ::= { vlanMacBaseVlanPortEntry 2 }

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

vlanPrivateEdgeGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPrivateEdgeGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for pve port and uplink"
    ::= { vlan 47 }

vlanPrivateEdgeGroupEntry OBJECT-TYPE
    SYNTAX      VlanPrivateEdgeGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of pve"
    INDEX   { vlanPrivateEdgeGroupSource }
    ::= { vlanPrivateEdgeGroupTable 1 }

VlanPrivateEdgeGroupEntry ::= SEQUENCE {
        vlanPrivateEdgeGroupSource  INTEGER,
        vlanPrivateEdgeGroupUplink  INTEGER,
        vlanPrivateEdgeGroupStatus  RowStatus
    }

vlanPrivateEdgeGroupSource OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify the uplink group."
    ::= { vlanPrivateEdgeGroupEntry  1 }

vlanPrivateEdgeGroupUplink OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "specify the uplink port."
    ::= { vlanPrivateEdgeGroupEntry  2 }

vlanPrivateEdgeGroupStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row installation and removal conventions."
    ::= { vlanPrivateEdgeGroupEntry 3 }

vlanPrivateEdgeGroupIfIndexTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanPrivateEdgeGroupIfIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "table for pve port and uplink"
    ::= { vlan 48 }

vlanPrivateEdgeGroupIfIndexEntry OBJECT-TYPE
    SYNTAX      VlanPrivateEdgeGroupIfIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of pve"
    INDEX   { ifIndex }
    ::= { vlanPrivateEdgeGroupIfIndexTable 1 }

VlanPrivateEdgeGroupIfIndexEntry ::= SEQUENCE {
        vlanPrivateEdgeGroupIfIndexID       INTEGER,
        vlanPrivateEdgeGroupIfIndexDomainID INTEGER
    }

vlanPrivateEdgeGroupIfIndexID OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify the ifIndex group id."
    ::= { vlanPrivateEdgeGroupIfIndexEntry  1 }

vlanPrivateEdgeGroupIfIndexDomainID OBJECT-TYPE
    SYNTAX      INTEGER (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "specify the ifIndex group id."
    ::= { vlanPrivateEdgeGroupIfIndexEntry  2 }


-- -------------------------------------------------------------
-- vlanSubnetRange group
-- -------------------------------------------------------------
vlanSubnetRangeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanSubnetRangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A table that contains mappings from subnet
                 range to Group Identifiers used for
                 Port-and-subnet-based VLAN Classification."
    REFERENCE        "IEEE 802.1v clause 8.6.4"
    ::= { vlan 49 }

vlanSubnetRangeEntry OBJECT-TYPE
    SYNTAX      VlanSubnetRangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION        "A mapping from a subnet to a
                        Group Identifier."
    INDEX       {  vlanSubnetRangeAddr,
                   vlanSubnetRangeMask  }
    ::= { vlanSubnetRangeTable 1 }

VlanSubnetRangeEntry ::=
SEQUENCE {        vlanSubnetRangeAddr       IpAddress,
                  vlanSubnetRangeMask       INTEGER,
                  vlanSubnetRangeGroupId    INTEGER,
                  vlanSubnetRangeRowStatus  RowStatus    }

vlanSubnetRangeAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION            "The IP address of the range "
::= { vlanSubnetRangeEntry 1 }

vlanSubnetRangeMask OBJECT-TYPE
    SYNTAX      INTEGER (1..32)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION            "The numbers of continuous ones in the mask "
     ::= { vlanSubnetRangeEntry 2 }

vlanSubnetRangeGroupId OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION        "Represents a group of subnets that are associated
                        together when assigning a VID to a frame."
    ::= { vlanSubnetRangeEntry 3 }

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

-- port bind
vlanSubnetPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanSubnetPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION        "A table that contains VID sets used for
                        Port-and-subnet-based VLAN Classification."
    ::= { vlan 50 }

vlanSubnetPortEntry OBJECT-TYPE
    SYNTAX      VlanSubnetPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION        "A VID set for a port."
    INDEX       { dot1dBasePort,                  vlanSubnetPortGroupId }
    ::= { vlanSubnetPortTable 1 }

VlanSubnetPortEntry ::=
    SEQUENCE {        vlanSubnetPortGroupId            INTEGER,
                      vlanSubnetPortGroupVid            INTEGER,
                      vlanSubnetPortRowStatus            RowStatus    }

vlanSubnetPortGroupId OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION        "Designates a group of subnets in the
                         Group Database."
    ::= { vlanSubnetPortEntry 1 }

vlanSubnetPortGroupVid OBJECT-TYPE
    SYNTAX      INTEGER (1..4094)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION        "The VID associated with a group of subnets for
                        each port."
    ::= { vlanSubnetPortEntry 2 }

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

----------------------
--  Triple Play
----------------------

-- vlanTriplePlayTable table converted to Inet  See vlanInetTriplePlayTable

vlanTriplePlayTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanTriplePlayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " TriplePlay table, map CPE vlan to multicastTvVlan"
    ::= { vlan 51}

vlanTriplePlayEntry OBJECT-TYPE
    SYNTAX      VlanTriplePlayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of TriplePlay table"
    INDEX   { vlanTriplePlayInnerVID     }
    ::= { vlanTriplePlayTable 1 }

VlanTriplePlayEntry ::= SEQUENCE {
        vlanTriplePlayInnerVID     VlanIndex,
        vlanTriplePlayMulticastTvVID     VlanIndex,
        vlanTriplePlayRowStatus  RowStatus
    }

vlanTriplePlayInnerVID     OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         " Specifies  the CPE inner vlan."
    ::= { vlanTriplePlayEntry  1 }

vlanTriplePlayMulticastTvVID     OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       " Specifies the multicast TV outer vlan."
    ::= { vlanTriplePlayEntry  2 }

vlanTriplePlayRowStatus  OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row creation and removal conventions."
    ::= { vlanTriplePlayEntry  3 }


-- vlanTriplePlayMulticastTvTable  table converted to Inet  see vlanInetTriplePlayMulticastTvTable
vlanTriplePlayMulticastTvTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanTriplePlayMulticatTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " TriplePlayMulticastTv table saves a list of ports for a certain multicastTvVlan"
    ::= { vlan 52}

vlanTriplePlayMulticatTvEntry OBJECT-TYPE
    SYNTAX      VlanTriplePlayMulticatTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of triple play MulticastTv table"
    INDEX   { vlanTriplePlayMulticastTvMulticastTvVID      }
    ::= { vlanTriplePlayMulticastTvTable 1 }

VlanTriplePlayMulticatTvEntry ::= SEQUENCE {
              vlanTriplePlayMulticastTvMulticastTvVID      VlanIndex,
        vlanTriplePlayMulticastTvMulticastTvPortList         PortList

}

vlanTriplePlayMulticastTvMulticastTvVID      OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Specifies the multicast TV external vlan."
    ::= { vlanTriplePlayMulticatTvEntry 1 }


vlanTriplePlayMulticastTvMulticastTvPortList  OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "the multicast tv port list."
    ::= { vlanTriplePlayMulticatTvEntry 2}

vlanDefaultExtManagment  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "enable disable ext managment on default vlan."
    ::= { vlan 53 }


-------------------------------
--  Voice VLAN MIBs definition
-------------------------------

vlanVoice  OBJECT IDENTIFIER ::= { vlan 54 }

vlanVoiceAgingTimeout OBJECT-TYPE
    SYNTAX      INTEGER (1..43200)
    UNITS       "minutes"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The vlanVoiceAgingTimeout indicates the time (in units of
            minutes) from when the last OUI MAC was ageout from the FDB the port
            will be removed from the Voice VLAN.

            The default value for vlanVoiceAgingTimeout object is 1440 minutes (24 hours).

            The value of this object must be restored from non-volatile
            storage after a re-initialization of the management system."
    DEFVAL      { 1440 }
    ::= { vlanVoice 1 }


-- voice vlan table
vlanVoiceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanVoiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing static configuration information for
        each voice VLAN configured into the device and dynamic port membership.
        All entries are permanent and will
        be restored after the device is reset."
    ::= { vlanVoice 2 }

vlanVoiceEntry OBJECT-TYPE
    SYNTAX      VlanVoiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information for a voice VLAN configured into the device by management."
    INDEX   { dot1qVlanIndex }
    ::= { vlanVoiceTable 1 }

VlanVoiceEntry ::=
    SEQUENCE {
        vlanVoicePriority
            INTEGER,
        vlanVoicePriorityRemark
            TruthValue,
        vlanVoiceRowStatus
            RowStatus
    }

vlanVoicePriority OBJECT-TYPE
    SYNTAX      INTEGER (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "An administratively assigned Priority, which will be used
        for all traffic on the voice vlan, this gives the packets
        the requested priority (CoS) within the bridge."
    DEFVAL{ 6 }
    ::= { vlanVoiceEntry 1 }

vlanVoicePriorityRemark OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Remark VPT on tagged frames egress the voice vlan according.
         to priority true.false"
    DEFVAL { false }
    ::= { vlanVoiceEntry 2 }

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


-- Voice VLAN OUI Table
vlanVoiceOUITable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanVoiceOUIEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing static global configuration information for Voice VLANs OUI MAC Prefixes.
        All entries are permanent and will be restored after the device is reset."
    ::= { vlanVoice 3 }

vlanVoiceOUIEntry OBJECT-TYPE
    SYNTAX      VlanVoiceOUIEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information for a voice VLANs OUI MAC Prefixes configured into the
        device by management."
    INDEX   { vlanVoiceOUIPrefix }
    ::= { vlanVoiceOUITable  1 }

VlanVoiceOUIEntry ::= SEQUENCE {
              vlanVoiceOUIPrefix                      OCTET STRING,
              vlanVoiceOUIDescription                 DisplayString,
              vlanVoiceOUIEntryRowStatus              RowStatus
}

vlanVoiceOUIPrefix   OBJECT-TYPE
    SYNTAX         OCTET STRING(SIZE(3))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The index value used to identify the OUI MAC Prefix component
             associated with this entry.

            The value of this object is used as an index to the
            vlanVoiceOUITable.

            Voice VLANs OUI Prefix is the first 3 most significant
            octets of the MAC address."
    ::= { vlanVoiceOUIEntry 1 }

vlanVoiceOUIDescription OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "An optional text that describes the OUI."
    DEFVAL {""}
    ::=  { vlanVoiceOUIEntry 2 }

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


-- Voice VLAN per Port configuration Table
vlanVoicePortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanVoicePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing static and dynamic per port configuration information for Voice VLAN.
        All entries are permanent and will be restored after the device is reset."
    ::= { vlanVoice 4 }

vlanVoicePortEntry OBJECT-TYPE
    SYNTAX      VlanVoicePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Static and dynamic per port information for a voice VLAN."
    INDEX { ifIndex }
    ::= { vlanVoicePortTable 1 }

VlanVoicePortEntry ::= SEQUENCE {
              vlanVoicePortEnable                           TruthValue,
              vlanVoicePortVlanIndex                        VlanIndex,
              vlanVoicePortSecure                           TruthValue,
              vlanVoicePortCurrentMembership                INTEGER {active(1),notActive(2)}
}

vlanVoicePortEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable this port to be a candidate to be added into the Voice VLAN."
    DEFVAL{ false }
    ::= { vlanVoicePortEntry 1 }

vlanVoicePortVlanIndex OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Voice VLAN-ID the port is a candidate to be in."
    DEFVAL{ 4095 }
    ::= { vlanVoicePortEntry 2 }

vlanVoicePortSecure OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specify this port to be in Secure Mode when entering the Voice VLAN.
          In Secure mode only frames with MAC prefix matched to one of the OUI table prefixes
         are accepted, otherwise dropped."
    DEFVAL{ false }
    ::= { vlanVoicePortEntry 3 }

vlanVoicePortCurrentMembership OBJECT-TYPE
    SYNTAX  INTEGER {
            active(1),
            notActive(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Port's current status of membership in Voice VLAN.

         Port's possible values of membership in Voice VLAN:
          'Active(1)'    - Port is currently added to a Voice VLAN .
          'NotActive(2)' - Specifies either that port is a candidate to be
                           in Voice VLAN or disabled."
    ::= { vlanVoicePortEntry 4 }

vlanVoiceOUISetToDefault OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The vlanVoiceOUISetToDefault indicates that vlanVoiceOUITable
            should be set to it's default values if existed
            (OUI default prefixes).

            To do so the vlanVoiceOUITable should be previuosly deleted by usual
            entries destroying.

            This object behaviors as write-only than
            reading this object will always return 'false'."
    DEFVAL{ false }
    ::= { vlanVoice 5 }
--------------------------------------------------
--  Default VLAN tagged ports - MIBs definition
--------------------------------------------------

vlanDefault  OBJECT IDENTIFIER ::= { vlan 55 }

vlanDefaultTaggedPorts OBJECT-TYPE
    SYNTAX  PortList
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "list of default valn tagged ports."
    ::= { vlanDefault 1 }

--------------------------------------------------
--  Default VLAN excluded ports - MIBs definition
--------------------------------------------------

vlanDefaultEnabledPorts OBJECT-TYPE
    SYNTAX  PortList
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "List of default VLAN membership enabled ports."
    ::= { vlanDefault 2 }

-- vlanInetTriplePlayTable (replaced DEPRICATED vlanTriplePlayTable)

vlanInetTriplePlayTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanInetTriplePlayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " TriplePlay table, map CPE vlan to multicastTvVlan"
    ::= { vlan 56}

vlanInetTriplePlayEntry OBJECT-TYPE
    SYNTAX      VlanInetTriplePlayEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of TriplePlay table"
    INDEX   { vlanInetTriplePlayInetAddressType, vlanTriplePlayInnerVID }
    ::= { vlanInetTriplePlayTable 1 }

VlanInetTriplePlayEntry ::= SEQUENCE {
        vlanInetTriplePlayInetAddressType   InetAddressType,
        vlanInetTriplePlayInnerVID              VlanIndex,
        vlanInetTriplePlayMulticastTvVID        VlanIndex,
        vlanInetTriplePlayRowStatus             RowStatus
    }

vlanInetTriplePlayInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Inet type IPv4/IPv6."
    ::= { vlanInetTriplePlayEntry 1 }

vlanInetTriplePlayInnerVID     OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         " Specifies  the CPE inner vlan."
    ::= { vlanInetTriplePlayEntry 2 }

vlanInetTriplePlayMulticastTvVID     OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       " Specifies the multicast TV outer vlan."
    ::= { vlanInetTriplePlayEntry  3 }

vlanInetTriplePlayRowStatus  OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The row status variable, used according to
       row creation and removal conventions."
    ::= { vlanInetTriplePlayEntry  4 }

-- vlanInetTriplePlayMulticastTvTable (replaced DEPRICATED vlanTriplePlayMulticastTvTable)

vlanInetTriplePlayMulticastTvTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanInetTriplePlayMulticatTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " TriplePlayMulticastTv table saves a list of ports for a certain multicastTvVlan"
    ::= { vlan 57 }

vlanInetTriplePlayMulticatTvEntry OBJECT-TYPE
    SYNTAX      VlanInetTriplePlayMulticatTvEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        " entry of triple play MulticastTv table"
    INDEX   { vlanTriplePlayMulticastTvMulticastTvVID      }
    ::= { vlanInetTriplePlayMulticastTvTable 1 }

VlanInetTriplePlayMulticatTvEntry ::= SEQUENCE {
        vlanInetTriplePlayMulticastTvMulticastTvVID      VlanIndex,
        vlanInetTriplePlayMulticastTvMulticastTvPortList         PortList
}

vlanInetTriplePlayMulticastTvMulticastTvVID      OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Specifies the multicast TV external vlan."
    ::= { vlanInetTriplePlayMulticatTvEntry 1 }


vlanInetTriplePlayMulticastTvMulticastTvPortList  OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "the multicast tv port list."
    ::= { vlanInetTriplePlayMulticatTvEntry 2}

vlanAsymmetricEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Indicates enabled or disabled of Asymetric Vlan"
    ::= { vlan 58 }

--  next free ::= { vlan 59 }

END
