-- *****************************************************************
-- VLAN-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000DisplayString FROM CIE1000-TC
    CIE1000EtherType FROM CIE1000-TC
    CIE1000InterfaceIndex FROM CIE1000-TC
    CIE1000PortList FROM CIE1000-TC
    CIE1000RowEditorState FROM CIE1000-TC
    CIE1000Unsigned16 FROM CIE1000-TC
    CIE1000Vlan FROM CIE1000-TC
    CIE1000VlanListQuarter FROM CIE1000-TC
    TruthValue FROM SNMPv2-TC
    ;

cie1000VlanMib MODULE-IDENTITY
    LAST-UPDATED "201501160000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "Private MIB for VLAN."
    REVISION    "201501160000Z"
    DESCRIPTION
        "Added Shared VLAN Learning table"
    REVISION    "201407010000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 13 }


CIE1000VlanEgressTagging ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "An integer that indicates how egress tagging occurs."
    SYNTAX      INTEGER { untagThis(0), tagThis(1), tagAll(2),
                          untagAll(3) }

CIE1000VlanIngressAcceptance ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "An integer that indicates the type of frames that are not discarded on
         ingress w.r.t. VLAN tagging."
    SYNTAX      INTEGER { all(0), tagged(1), untagged(2) }

CIE1000VlanPortMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Determines the underlying port mode.
         
         Access ports are only members of one VLAN, the AccessVlan.
         
         Trunk ports are by default members of all VLANs, which can be limited
         with TrunkVlans.
         
         Hybrid ports allow for changing all port VLAN parameters. As trunk
         ports, hybrid ports are by default members of all VLANs, which can be
         limited with HybridVlans."
    SYNTAX      INTEGER { access(0), trunk(1), hybrid(2) }

CIE1000VlanPortType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "An integer that indicates if a port is VLAN aware, and if so, to which
         EtherType it is sensitive."
    SYNTAX      INTEGER { unaware(0), c(1), s(2), sCustom(3) }

CIE1000VlanUserType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "An integer that indicates the VLAN user type. A value of 'combined'
         indicates the VLAN settings as programmed to hardware. A value of
         'admin' indicates the VLAN settings as programmed by the administrative
         user, and any other value indicates a software module that changes VLAN
         settings 'behind the scenes'."
    SYNTAX      INTEGER { combined(0), admin(1), dot1x(3), mvrp(4),
                          gvrp(5), mvr(6), voiceVlan(7), mstp(8),
                          erps(9), mep(10), evc(11), vcl(12),
                          rmirror(13) }

cie1000VlanMibObjects OBJECT IDENTIFIER
    ::= { cie1000VlanMib 1 }

cie1000VlanCapabilities OBJECT IDENTIFIER
    ::= { cie1000VlanMibObjects 1 }

cie1000VlanCapabilitiesVlanIdMin OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum VLAN ID that can be configured on the device."
    ::= { cie1000VlanCapabilities 1 }

cie1000VlanCapabilitiesVlanIdMax OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum VLAN ID that can be configured on the device."
    ::= { cie1000VlanCapabilities 2 }

cie1000VlanCapabilitiesFidCnt OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Shared VLAN Learning (SVL) Filter IDs (FIDs) supported by
         this device. 0 if SVL is not supported."
    ::= { cie1000VlanCapabilities 3 }

cie1000VlanConfig OBJECT IDENTIFIER
    ::= { cie1000VlanMibObjects 2 }

cie1000VlanConfigGlobals OBJECT IDENTIFIER
    ::= { cie1000VlanConfig 1 }

cie1000VlanConfigGlobalsMain OBJECT IDENTIFIER
    ::= { cie1000VlanConfigGlobals 1 }

cie1000VlanConfigGlobalsMainCustomSPortEtherType OBJECT-TYPE
    SYNTAX      CIE1000EtherType (1536..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "TPID (EtherType) for ports marked as Custom-S tag aware."
    ::= { cie1000VlanConfigGlobalsMain 1 }

cie1000VlanConfigGlobalsMainAccessVlans0To1K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "First quarter of bit-array indicating the enabled access VLANs."
    ::= { cie1000VlanConfigGlobalsMain 2 }

cie1000VlanConfigGlobalsMainAccessVlans1KTo2K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Second quarter of bit-array indicating the enabled access VLANs."
    ::= { cie1000VlanConfigGlobalsMain 3 }

cie1000VlanConfigGlobalsMainAccessVlans2KTo3K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Third quarter of bit-array indicating the enabled access VLANs."
    ::= { cie1000VlanConfigGlobalsMain 4 }

cie1000VlanConfigGlobalsMainAccessVlans3KTo4K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Last quarter of bit-array indicating the enabled access VLANs."
    ::= { cie1000VlanConfigGlobalsMain 5 }

cie1000VlanConfigGlobalsNameTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000VlanConfigGlobalsNameEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of VLAN names."
    ::= { cie1000VlanConfigGlobals 2 }

cie1000VlanConfigGlobalsNameEntry OBJECT-TYPE
    SYNTAX      CIE1000VlanConfigGlobalsNameEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row contains the name of a given VLAN."
    INDEX       { cie1000VlanConfigGlobalsNameVlanId }
    ::= { cie1000VlanConfigGlobalsNameTable 1 }

CIE1000VlanConfigGlobalsNameEntry ::= SEQUENCE {
    cie1000VlanConfigGlobalsNameVlanId  CIE1000Vlan,
    cie1000VlanConfigGlobalsNameName    CIE1000DisplayString
}

cie1000VlanConfigGlobalsNameVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN ID. Valid range is 1 - 4095."
    ::= { cie1000VlanConfigGlobalsNameEntry 1 }

cie1000VlanConfigGlobalsNameName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "VLAN Name. Default for VLAN 1 is 'default'. Default for any other VLAN
         is 'VLANxxxx', where 'xxxx' is a decimal representation of the VLAN ID
         with leading zeroes."
    ::= { cie1000VlanConfigGlobalsNameEntry 2 }

cie1000VlanConfigInterfaces OBJECT IDENTIFIER
    ::= { cie1000VlanConfig 2 }

cie1000VlanConfigInterfacesTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000VlanConfigInterfacesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of per-port configuration."
    ::= { cie1000VlanConfigInterfaces 1 }

cie1000VlanConfigInterfacesEntry OBJECT-TYPE
    SYNTAX      CIE1000VlanConfigInterfacesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row contains the VLAN configuration for a port interface."
    INDEX       { cie1000VlanConfigInterfacesIfIndex }
    ::= { cie1000VlanConfigInterfacesTable 1 }

CIE1000VlanConfigInterfacesEntry ::= SEQUENCE {
    cie1000VlanConfigInterfacesIfIndex                  CIE1000InterfaceIndex,
    cie1000VlanConfigInterfacesMode                     CIE1000VlanPortMode,
    cie1000VlanConfigInterfacesAccessVlan               CIE1000Vlan,
    cie1000VlanConfigInterfacesTrunkNativeVlan          CIE1000Vlan,
    cie1000VlanConfigInterfacesTrunkTagNativeVlan       TruthValue,
    cie1000VlanConfigInterfacesTrunkVlans0KTo1K         CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesTrunkVlans1KTo2K         CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesTrunkVlans2KTo3K         CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesTrunkVlans3KTo4K         CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesHybridNativeVlan         CIE1000Vlan,
    cie1000VlanConfigInterfacesHybridPortType           CIE1000VlanPortType,
    cie1000VlanConfigInterfacesHybridIngressFiltering   TruthValue,
    cie1000VlanConfigInterfacesHybridIngressAcceptance  CIE1000VlanIngressAcceptance,
    cie1000VlanConfigInterfacesHybridEgressTagging      CIE1000VlanEgressTagging,
    cie1000VlanConfigInterfacesHybridVlans0KTo1K        CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesHybridVlans1KTo2K        CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesHybridVlans2KTo3K        CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesHybridVlans3KTo4K        CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesForbiddenVlans0KTo1K     CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesForbiddenVlans1KTo2K     CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesForbiddenVlans2KTo3K     CIE1000VlanListQuarter,
    cie1000VlanConfigInterfacesForbiddenVlans3KTo4K     CIE1000VlanListQuarter
}

cie1000VlanConfigInterfacesIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface index."
    ::= { cie1000VlanConfigInterfacesEntry 1 }

cie1000VlanConfigInterfacesMode OBJECT-TYPE
    SYNTAX      CIE1000VlanPortMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "VLAN mode of the port."
    ::= { cie1000VlanConfigInterfacesEntry 2 }

cie1000VlanConfigInterfacesAccessVlan OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The port VLAN ID the port will be assigned when Mode is Access."
    ::= { cie1000VlanConfigInterfacesEntry 3 }

cie1000VlanConfigInterfacesTrunkNativeVlan OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The port VLAN ID the port will be assigned when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 4 }

cie1000VlanConfigInterfacesTrunkTagNativeVlan OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls whether frames classified to TrunkNativeVlan get tagged on
         egress. Used when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 5 }

cie1000VlanConfigInterfacesTrunkVlans0KTo1K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "First quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 6 }

cie1000VlanConfigInterfacesTrunkVlans1KTo2K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Second quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 7 }

cie1000VlanConfigInterfacesTrunkVlans2KTo3K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Third quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 8 }

cie1000VlanConfigInterfacesTrunkVlans3KTo4K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Last quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is trunk."
    ::= { cie1000VlanConfigInterfacesEntry 9 }

cie1000VlanConfigInterfacesHybridNativeVlan OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The port VLAN ID the port will be assigned when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 10 }

cie1000VlanConfigInterfacesHybridPortType OBJECT-TYPE
    SYNTAX      CIE1000VlanPortType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls awareness and whether it reacts to C-tags, S-tags,
         Custom-S-tags. Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 11 }

cie1000VlanConfigInterfacesHybridIngressFiltering OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls whether frames classified to a certain VLAN ID get discarded
         (true) or not (false) if the port is not member of the VLAN ID. Used
         when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 12 }

cie1000VlanConfigInterfacesHybridIngressAcceptance OBJECT-TYPE
    SYNTAX      CIE1000VlanIngressAcceptance
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls whether frames are accepted on ingress depending on VLAN tag
         in frame. Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 13 }

cie1000VlanConfigInterfacesHybridEgressTagging OBJECT-TYPE
    SYNTAX      CIE1000VlanEgressTagging
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls tagging of frames on egress. tagThis(1) is not allowed. Used
         when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 14 }

cie1000VlanConfigInterfacesHybridVlans0KTo1K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "First quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 15 }

cie1000VlanConfigInterfacesHybridVlans1KTo2K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Second quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 16 }

cie1000VlanConfigInterfacesHybridVlans2KTo3K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Third quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 17 }

cie1000VlanConfigInterfacesHybridVlans3KTo4K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Last quarter of bit-array indicating whether the port is member of a
         VLAN ('1') or not ('0'). Used when Mode is hybrid."
    ::= { cie1000VlanConfigInterfacesEntry 18 }

cie1000VlanConfigInterfacesForbiddenVlans0KTo1K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "First quarter of bit-array indicating whether the port can ever become
         a member of a VLAN ('0') or not ('1'). Used in all modes."
    ::= { cie1000VlanConfigInterfacesEntry 19 }

cie1000VlanConfigInterfacesForbiddenVlans1KTo2K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Second quarter of bit-array indicating whether the port can ever become
         a member of a VLAN ('0') or not ('1'). Used in all modes."
    ::= { cie1000VlanConfigInterfacesEntry 20 }

cie1000VlanConfigInterfacesForbiddenVlans2KTo3K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Third quarter of bit-array indicating whether the port can ever become
         a member of a VLAN ('0') or not ('1'). Used in all modes."
    ::= { cie1000VlanConfigInterfacesEntry 21 }

cie1000VlanConfigInterfacesForbiddenVlans3KTo4K OBJECT-TYPE
    SYNTAX      CIE1000VlanListQuarter
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Last quarter of bit-array indicating whether the port can ever become a
         member of a VLAN ('0') or not ('1'). Used in all modes."
    ::= { cie1000VlanConfigInterfacesEntry 22 }

cie1000VlanConfigInterfacesSvlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000VlanConfigInterfacesSvlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Shared VLAN Learning (SVL) allows for having one or more VLAN IDs map
         to the same Filter ID (FID). For a given set of VLANs, if an individual
         MAC address is learned in one VLAN, that learned information is used in
         forwarding decisions taken for that address relative to all other VLANs
         in the given set.
         
         fidCnt, which can be found in the capabilities section, indicates the
         number of FIDs available on this platform. The feature is not available
         if this number is 0."
    ::= { cie1000VlanConfigInterfaces 2 }

cie1000VlanConfigInterfacesSvlEntry OBJECT-TYPE
    SYNTAX      CIE1000VlanConfigInterfacesSvlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table is indexed by VLAN ID"
    INDEX       { cie1000VlanConfigInterfacesSvlVlanId }
    ::= { cie1000VlanConfigInterfacesSvlTable 1 }

CIE1000VlanConfigInterfacesSvlEntry ::= SEQUENCE {
    cie1000VlanConfigInterfacesSvlVlanId    CIE1000Vlan,
    cie1000VlanConfigInterfacesSvlFilterId  CIE1000Unsigned16,
    cie1000VlanConfigInterfacesSvlAction    CIE1000RowEditorState
}

cie1000VlanConfigInterfacesSvlVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN ID. Valid range is 1 - 4095."
    ::= { cie1000VlanConfigInterfacesSvlEntry 1 }

cie1000VlanConfigInterfacesSvlFilterId OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Filter ID (FID) used in Shared VLAN Learning. Zero or more VLANs may
         map into the same FID."
    ::= { cie1000VlanConfigInterfacesSvlEntry 2 }

cie1000VlanConfigInterfacesSvlAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000VlanConfigInterfacesSvlEntry 100 }

cie1000VlanConfigInterfacesSvlTableRowEditor OBJECT IDENTIFIER
    ::= { cie1000VlanConfigInterfaces 3 }

cie1000VlanConfigInterfacesSvlTableRowEditorVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "VLAN ID. Valid range is 1 - 4095."
    ::= { cie1000VlanConfigInterfacesSvlTableRowEditor 1 }

cie1000VlanConfigInterfacesSvlTableRowEditorFilterId OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Filter ID (FID) used in Shared VLAN Learning. Zero or more VLANs may
         map into the same FID."
    ::= { cie1000VlanConfigInterfacesSvlTableRowEditor 2 }

cie1000VlanConfigInterfacesSvlTableRowEditorAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000VlanConfigInterfacesSvlTableRowEditor 100 }

cie1000VlanStatus OBJECT IDENTIFIER
    ::= { cie1000VlanMibObjects 3 }

cie1000VlanStatusInterfaces OBJECT IDENTIFIER
    ::= { cie1000VlanStatus 1 }

cie1000VlanStatusInterfacesTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000VlanStatusInterfacesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of per-interface (port) status."
    ::= { cie1000VlanStatusInterfaces 1 }

cie1000VlanStatusInterfacesEntry OBJECT-TYPE
    SYNTAX      CIE1000VlanStatusInterfacesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row contains the VLAN configuration for a port interface for a
         given VLAN user."
    INDEX       { cie1000VlanStatusInterfacesIfIndex,
                  cie1000VlanStatusInterfacesVlanUser }
    ::= { cie1000VlanStatusInterfacesTable 1 }

CIE1000VlanStatusInterfacesEntry ::= SEQUENCE {
    cie1000VlanStatusInterfacesIfIndex            CIE1000InterfaceIndex,
    cie1000VlanStatusInterfacesVlanUser           CIE1000VlanUserType,
    cie1000VlanStatusInterfacesPvid               CIE1000Vlan,
    cie1000VlanStatusInterfacesUvid               CIE1000Vlan,
    cie1000VlanStatusInterfacesPortType           CIE1000VlanPortType,
    cie1000VlanStatusInterfacesIngressFiltering   TruthValue,
    cie1000VlanStatusInterfacesIngressAcceptance  CIE1000VlanIngressAcceptance,
    cie1000VlanStatusInterfacesEgressTagging      CIE1000VlanEgressTagging
}

cie1000VlanStatusInterfacesIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface index."
    ::= { cie1000VlanStatusInterfacesEntry 1 }

cie1000VlanStatusInterfacesVlanUser OBJECT-TYPE
    SYNTAX      CIE1000VlanUserType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN user."
    ::= { cie1000VlanStatusInterfacesEntry 2 }

cie1000VlanStatusInterfacesPvid OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Port VLAN ID set by this user."
    ::= { cie1000VlanStatusInterfacesEntry 3 }

cie1000VlanStatusInterfacesUvid OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Untagged VLAN ID set by a user. This may only be populated by non-admin
         users."
    ::= { cie1000VlanStatusInterfacesEntry 4 }

cie1000VlanStatusInterfacesPortType OBJECT-TYPE
    SYNTAX      CIE1000VlanPortType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "VLAN Awareness and tag reaction set by this user."
    ::= { cie1000VlanStatusInterfacesEntry 5 }

cie1000VlanStatusInterfacesIngressFiltering OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Ingress filtering enabled or disabled by this user."
    ::= { cie1000VlanStatusInterfacesEntry 6 }

cie1000VlanStatusInterfacesIngressAcceptance OBJECT-TYPE
    SYNTAX      CIE1000VlanIngressAcceptance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "VLAN tagging accepted upon ingress configured by this user."
    ::= { cie1000VlanStatusInterfacesEntry 7 }

cie1000VlanStatusInterfacesEgressTagging OBJECT-TYPE
    SYNTAX      CIE1000VlanEgressTagging
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Egress tagging configured by this user."
    ::= { cie1000VlanStatusInterfacesEntry 8 }

cie1000VlanStatusMemberships OBJECT IDENTIFIER
    ::= { cie1000VlanStatus 2 }

cie1000VlanStatusMembershipsVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000VlanStatusMembershipsVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of per-VLAN, per-VLAN user port memberships."
    ::= { cie1000VlanStatusMemberships 1 }

cie1000VlanStatusMembershipsVlanEntry OBJECT-TYPE
    SYNTAX      CIE1000VlanStatusMembershipsVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row contains a port list of VLAN memberships for a given VLAN and
         VLAN user.The table is sparsely populated, so if a VLAN user doesn't
         contribute, the row is non-existent."
    INDEX       { cie1000VlanStatusMembershipsVlanVlanId,
                  cie1000VlanStatusMembershipsVlanVlanUser }
    ::= { cie1000VlanStatusMembershipsVlanTable 1 }

CIE1000VlanStatusMembershipsVlanEntry ::= SEQUENCE {
    cie1000VlanStatusMembershipsVlanVlanId    CIE1000Vlan,
    cie1000VlanStatusMembershipsVlanVlanUser  CIE1000VlanUserType,
    cie1000VlanStatusMembershipsVlanPortList  CIE1000PortList
}

cie1000VlanStatusMembershipsVlanVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN ID. Valid range is 1 - 4095."
    ::= { cie1000VlanStatusMembershipsVlanEntry 1 }

cie1000VlanStatusMembershipsVlanVlanUser OBJECT-TYPE
    SYNTAX      CIE1000VlanUserType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN user."
    ::= { cie1000VlanStatusMembershipsVlanEntry 2 }

cie1000VlanStatusMembershipsVlanPortList OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Port list."
    ::= { cie1000VlanStatusMembershipsVlanEntry 3 }

cie1000VlanMibConformance OBJECT IDENTIFIER
    ::= { cie1000VlanMib 2 }

cie1000VlanMibCompliances OBJECT IDENTIFIER
    ::= { cie1000VlanMibConformance 1 }

cie1000VlanMibGroups OBJECT IDENTIFIER
    ::= { cie1000VlanMibConformance 2 }

cie1000VlanCapabilitiesInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanCapabilitiesVlanIdMin,
                  cie1000VlanCapabilitiesVlanIdMax,
                  cie1000VlanCapabilitiesFidCnt }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 1 }

cie1000VlanConfigGlobalsMainInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanConfigGlobalsMainCustomSPortEtherType,
                  cie1000VlanConfigGlobalsMainAccessVlans0To1K,
                  cie1000VlanConfigGlobalsMainAccessVlans1KTo2K,
                  cie1000VlanConfigGlobalsMainAccessVlans2KTo3K,
                  cie1000VlanConfigGlobalsMainAccessVlans3KTo4K }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 2 }

cie1000VlanConfigGlobalsNameTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanConfigGlobalsNameVlanId,
                  cie1000VlanConfigGlobalsNameName }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 3 }

cie1000VlanConfigInterfacesTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanConfigInterfacesIfIndex,
                  cie1000VlanConfigInterfacesMode,
                  cie1000VlanConfigInterfacesAccessVlan,
                  cie1000VlanConfigInterfacesTrunkNativeVlan,
                  cie1000VlanConfigInterfacesTrunkTagNativeVlan,
                  cie1000VlanConfigInterfacesTrunkVlans0KTo1K,
                  cie1000VlanConfigInterfacesTrunkVlans1KTo2K,
                  cie1000VlanConfigInterfacesTrunkVlans2KTo3K,
                  cie1000VlanConfigInterfacesTrunkVlans3KTo4K,
                  cie1000VlanConfigInterfacesHybridNativeVlan,
                  cie1000VlanConfigInterfacesHybridPortType,
                  cie1000VlanConfigInterfacesHybridIngressFiltering,
                  cie1000VlanConfigInterfacesHybridIngressAcceptance,
                  cie1000VlanConfigInterfacesHybridEgressTagging,
                  cie1000VlanConfigInterfacesHybridVlans0KTo1K,
                  cie1000VlanConfigInterfacesHybridVlans1KTo2K,
                  cie1000VlanConfigInterfacesHybridVlans2KTo3K,
                  cie1000VlanConfigInterfacesHybridVlans3KTo4K,
                  cie1000VlanConfigInterfacesForbiddenVlans0KTo1K,
                  cie1000VlanConfigInterfacesForbiddenVlans1KTo2K,
                  cie1000VlanConfigInterfacesForbiddenVlans2KTo3K,
                  cie1000VlanConfigInterfacesForbiddenVlans3KTo4K }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 4 }

cie1000VlanConfigInterfacesSvlTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanConfigInterfacesSvlVlanId,
                  cie1000VlanConfigInterfacesSvlFilterId,
                  cie1000VlanConfigInterfacesSvlAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 5 }

cie1000VlanConfigInterfacesSvlTableRowEditorInfoGroup OBJECT-GROUP
    OBJECTS     {                   cie1000VlanConfigInterfacesSvlTableRowEditorVlanId,
                  cie1000VlanConfigInterfacesSvlTableRowEditorFilterId,
                  cie1000VlanConfigInterfacesSvlTableRowEditorAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 6 }

cie1000VlanStatusInterfacesTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanStatusInterfacesIfIndex,
                  cie1000VlanStatusInterfacesVlanUser,
                  cie1000VlanStatusInterfacesPvid,
                  cie1000VlanStatusInterfacesUvid,
                  cie1000VlanStatusInterfacesPortType,
                  cie1000VlanStatusInterfacesIngressFiltering,
                  cie1000VlanStatusInterfacesIngressAcceptance,
                  cie1000VlanStatusInterfacesEgressTagging }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 7 }

cie1000VlanStatusMembershipsVlanTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000VlanStatusMembershipsVlanVlanId,
                  cie1000VlanStatusMembershipsVlanVlanUser,
                  cie1000VlanStatusMembershipsVlanPortList }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000VlanMibGroups 8 }

cie1000VlanMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000VlanCapabilitiesInfoGroup,
                       cie1000VlanConfigGlobalsMainInfoGroup,
                       cie1000VlanConfigGlobalsNameTableInfoGroup,
                       cie1000VlanConfigInterfacesTableInfoGroup,
                       cie1000VlanConfigInterfacesSvlTableInfoGroup,
                       cie1000VlanConfigInterfacesSvlTableRowEditorInfoGroup,
                       cie1000VlanStatusInterfacesTableInfoGroup,
                       cie1000VlanStatusMembershipsVlanTableInfoGroup }

    ::= { cie1000VlanMibCompliances 1 }

END
