
NTN-QOS-POLICY-EVOL-PIB DEFINITIONS ::= BEGIN

IMPORTS
    Unsigned32, MODULE-IDENTITY, OBJECT-TYPE, Integer32,
    Counter64, OBJECT-IDENTITY, zeroDotZero, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
    RowStatus, StorageType, TEXTUAL-CONVENTION, RowPointer,
    TruthValue, MacAddress, AutonomousType
            FROM SNMPv2-TC
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    InterfaceIndex, InterfaceIndexOrZero
            FROM IF-MIB
    InetAddressType, InetAddress, InetAddressPrefixLength,
    InetPortNumber, InetAddressIPv4
            FROM INET-ADDRESS-MIB
    Dscp, DscpOrAny
            FROM DIFFSERV-DSCP-TC
    IndexInteger, IndexIntegerNextFree
            FROM DIFFSERV-MIB
    BurstSize
            FROM INTEGRATED-SERVICES-MIB
    PortList, VlanId
            FROM Q-BRIDGE-MIB
    policy
            FROM SYNOPTICS-ROOT-MIB
    Role, RoleCombination
            FROM POLICY-FRAMEWORK-PIB
    bnIfExtnSlot, bnIfExtnPort
            FROM BN-IF-EXTENSIONS-MIB;

ntnQosPolicyEvolPib  MODULE-IDENTITY
    LAST-UPDATED "201003080000Z"     -- March 08, 2010
    ORGANIZATION "Nortel Networks, Inc."
    CONTACT-INFO "
                  John Seligson
                  Nortel Networks, Inc.
                  4655 Great America Parkway
                  Santa Clara, CA 95054 USA
                  Phone: +1 916 933 4634
                  Email: jseligso@nortelnetworks.com"
    DESCRIPTION
            "A Nortel Network's management module containing 
             data definitions related to QoS components and
             services supported by network devices." 

    REVISION "201003080000Z" -- 08 March 2010
    DESCRIPTION "Version 25: Added ntnQosFilterLimiting."

    REVISION "201001050000Z" -- 05 January 2010
    DESCRIPTION "Version 24: Introduced enhanced Traffic-Profile filter set
                 metering support."

    REVISION "200911050000Z" -- 05 November 2009
    DESCRIPTION "Version 23: Added ntnQosConfigResetToPartialDefaults
                 to support a partial QoS reset-to-defaults operation.
                 Added ntnQosDsL2AccessElemMasterBlockMember to support
                 an explicit filter set block member hierarchy. Added
                 ntnSystemClfrPatternL2Format to support pattern
                 matching with different L2 frame formats. Added
                 ntnQosFilterSetStatsTable to facilitate statistics
                 retrieval for filter sets."

    REVISION "200908110000Z" -- 11 August 2009
    DESCRIPTION "Version 22:
                    Added lossless(4) to ntnQosConfigDefaultBufferingCaps."

    REVISION "200903260000Z" -- 26 March 2009
    DESCRIPTION "Version 21:  Added Trusted Processing Mode object."

    REVISION "200901050000Z" -- 05 January 2009
    DESCRIPTION "Version 20:  Added QoS system disable support. Added
                 objects supporting improved multicast filtering
                 granularity. Augmented available filter set types.
                 New interface shaping objects defined. DSCP mutation
                 object added to DSCP Mapping table."

    REVISION "200811050000Z" -- 05 November 2008
    DESCRIPTION "Version 19:  Added support for 'quick policies'."

    REVISION "200807090000Z" -- 09 July 2008
    DESCRIPTION "Version 18:  Updated descr of ntnQosConfigNtApplicationMode."

    REVISION "200807020000Z" -- 02 July 2008
    DESCRIPTION "Version 17:  Added markAsPriorityCopy(13) enumeration
                 to ntnQosBaseActionUpdateUserPriority."

    REVISION "200806260000Z" -- 26 June 2008
    DESCRIPTION "Version 16:  Added support for Discard Eligible 
                 Indicator in the ntnQosDEITable - DEI allows using
                 CFI bit in the vlan tag as the packet color 
                 when a packet ingress a port; at egress 
                 the packet color is written to CFI bit.
                 Ingress and egress CFI to packet color mappings
                 can be enabled on each interface.

                 Added QinQ traffic classification criteria support
                 in ntnL2MultiFieldClfrTable table.
                 QinQ encapsulation is specified in IEEE 802.1ad.
                 A packet can ingress a port with two vlan 
                 tags. New classification criteria support were
                 added to allow classification on both Inner/Outer
                 Tags. For both Tags the user can classify based on the
                 Tag Protocol Identifier, Vlan Id, Priority and CFI."

    REVISION "200805290000Z" -- 29 May 2008
    DESCRIPTION "Version 15:  Added support for native
                 DoS attack detection package (DAPP).
                 Updated interface capabilities, 
                 QoS Agent configuration and Notification 
                 definitions.

                 Added filtering options to the DS/L2 
                 meta-table ntnQosDsL2AccessElem.

                 Added ntnQosPolicyPrecResDiagsApplicationIdUsed & 
                 ntnQosPolicyPrecResDiagsApplicationNameUsed.

                 Added ntnQosConfigNtApplicationMode object
                 (NT-on-NT support) and ntnQosAccessAsgnSetPriority
                 object (filter set prioritization support).

                 Defined ntnQosInterfaceRoleStatsTrackingType
                 to expose the statistics tracking mode that is
                 associated with a role."

    REVISION "200609280000Z" -- 28 September 2006
    DESCRIPTION "Version 13: Introduced stratification of
                 capabilities across a number of tables
                 including all classifier, metering and
                 policy tables. Defined new attributes in
                 these tables as well to support new 
                 functionality. Clarified capabilities
                 support in the Interface Role Table and 
                 defined per-interface capabilities attribute
                 in the Interface Assignment Table. 

                 Added COS queue shaping support.

                 Added srTCM/trTCM metering support to
                 the Access Assignment Table.

                 Added policy resource usage reporting
                 attributes for an architecture in which
                 resources are centrally allocated."

    REVISION "200604210000Z" -- 21 April 2006
    DESCRIPTION "Version 12: Added notification support for
                 user access rejection related to local User
                 Based Policies (UBP) support in high-security
                 mode.

                 Added session Id data to several tables in
                 support of User Based Policies (UBP).  Added
                 agent attribute to allow the administrator to
                 specify the type UBP support that is enabled.
                 Updated filter set support to accept UBP
                 components. Updated support element types in
                 Access Element and Access Assignment tables.

                 Added DS/L2 Access Element Table.

                 Added evaluation order attribute and new type
                 support to the DS/L2 Access Element tables in
                 support of NSNA. Added non-match drop action
                 support in the Access Assignment Table.

                 Added additional applications bits to the
                 ntnQosIfAppsAppEnable attribute. Fixed
                 ntnQosPolicyInterfaceIndex syntax clause"

    REVISION "200502030000Z" -- 3 February 2005
    DESCRIPTION "Version 11: Added ntnQosIfAppsTable to support
                 interface-based QoS security applications"

    REVISION "200410250000Z" -- 25 October 2004
    DESCRIPTION "Version 10: Added ntnSystemClfrPatternFormat
                 and updated for DS/L2 Access Element and 
                 Access Assignment definitions"

    REVISION "200409200000Z" -- 20 September 2004
    DESCRIPTION "Version 9: Added ntnQosMappingRestoreDefault,
                 ntnQosMappingDscpToCosEnabled, and
                 ntnQosMappingCosToDscpEnabled"

    REVISION "200407200000Z" -- 20 July 2004
    DESCRIPTION "Version 8: Added version info"

    ::= { policy 7 }

IndexIntegerOrZero ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
        "An integer which may be used as a table index. A
        value of zero indicates that no table index has been
        specified."

    SYNTAX   Unsigned32 (0..4294967295)

QosIeee802Cos ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS       current
    DESCRIPTION
        "An integer that is in the range of the IEEE 802 COS 
        values. This corresponds to the 802.1p priority values."

    SYNTAX   Integer32 (0..7)

FlowIdOrAny ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
        "The flow identifier in an IPv6 header that may be used
        to discriminate traffic flows. The value of -1 is used to
        indicate a wildcard, i.e., any value."

    SYNTAX   Integer32 (-1 | 0..1048575)

DscpUpdate ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
        "The IP header Differentiated Services Code-Point that may be
        used for discriminating among traffic streams. The value -1 is
        used to indicate that the DSCP value should not be updated.
        The value 64 is used to indicate that the DSCP value should
        be updated using interface-specific (i.e., ingress interface)
        or Layer 2 (i.e., 802.1p user priority value) data to determine
        the appropriate DSCP value."
        
    SYNTAX   Integer32 (-1 | 0..63 | 64)

VersionIndicator ::= TEXTUAL-CONVENTION
    STATUS   current
    DESCRIPTION
        "A version indicator is used when different versions of a
        given table entry exist. The version itself specifies
        which attributes in an entry may be set to non-default
        values. Tables that include a version indicator attribute
        must indicate the versions to which each attribute is 
        applicable." 
        
    SYNTAX   INTEGER { version1(1), version2(2) }

ntnQosPolicyEvolPibClasses 
            OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPib 1 }

ntnQosPolicyEvolPibConformance 
            OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPib 2 }

ntnQosPolicyEvolPibNotifications
            OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPib 3 }

--
-- Nortel Networks Interface Type Table (evolved from standard
-- Interface Type Table from draft Diffserv PIB) 
--

ntnQosInterfaceTypeTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosInterfaceTypeEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Interface type definitions. This class describes the types
        of interfaces that exist on the device. An interface type
        is denoted by its designated role identifier."

    ::= { ntnQosPolicyEvolPibClasses 1 }

ntnQosInterfaceTypeEntry OBJECT-TYPE
    SYNTAX         NtnQosInterfaceTypeEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the characteristics
        of a type of an interface. Interface type characteristics
        include a role combination identifier, an interface class
        designation and a filter capabilities attribute.  An
        instance is required for each different unique role
        combination identifier which represents the different
        interface types that are operational in the device at
        any given time.  The PEP does not report which specific
        interfaces have which characteristics."

    INDEX { ntnQosInterfaceTypeId }
    ::= { ntnQosInterfaceTypeTable 1 }

NtnQosInterfaceTypeEntry ::= SEQUENCE {
        ntnQosInterfaceTypeId           IndexInteger,
        ntnQosInterfaceTypeRoles        RoleCombination,
        ntnQosInterfaceTypeIfClass      INTEGER,
        ntnQosInterfaceTypeCapabilities BITS,
        ntnQosInterfaceTypeStorageType  StorageType,
        ntnQosInterfaceTypeStatus       RowStatus
}

ntnQosInterfaceTypeId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies a
        instance of the ntnQosInterfaceType class. Class instances
        may not be contiguous."

    ::= { ntnQosInterfaceTypeEntry 1 }

ntnQosInterfaceTypeRoles OBJECT-TYPE
    SYNTAX         RoleCombination
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The role combination that is used to identify interfaces
        with the characteristics specified by the attributes
        of this class instance. Interface role combination
        identifiers are used within a number of classes to
        logically identify a physical set of interfaces to which
        policy rules and actions are applied. Role combination
        identifiers must exist in this table prior to being
        referenced in other class instances."

    ::= { ntnQosInterfaceTypeEntry 2 }

ntnQosInterfaceTypeIfClass OBJECT-TYPE
    SYNTAX         INTEGER {
                       trusted(1),  
                       nonTrusted(2),
                       unrestricted(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A value describing the overall classification of
        traffic received on interfaces with the given role
        combination. Traffic received on trusted interfaces
        may be processed differently and be subject 
        to different restrictions that traffic received on
        non-trusted interfaces. The treatment of traffic 
        based on interface class is implementation dependent."

    ::= { ntnQosInterfaceTypeEntry 3 }

ntnQosInterfaceTypeCapabilities OBJECT-TYPE
    SYNTAX         BITS {
                        other(0),

                        -- Classification support
                        inputIpClassification(1),
                        outputIpClassification(2),
                        input802Classification(3),
                        output802Classification(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An enumeration of interface capabilities.  Used by the
        PDP or network manager to select which policies and 
        configuration it should push to the PEP."

    ::= { ntnQosInterfaceTypeEntry 4 }

ntnQosInterfaceTypeStorageType OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosInterfaceTypeStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosInterfaceTypeEntry 5 }

ntnQosInterfaceTypeStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosInterfaceTypeEntry 6 }

--
-- Nortel Networks 802.1p User Priority Assignment Table
--
-- Supports the assignment of 802.1p user priority (Pri) 
-- values to queues for each queue set.
--

ntnQosQsetPriAssignmentTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosQsetPriAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Supports the assignment of 802.1p user priority 
        values to a queue for each interface with a specific 
        queue set. There will be 8 instances of this class 
        for each supported queue set."

    ::= { ntnQosPolicyEvolPibClasses 2 }

ntnQosQsetPriAssignmentEntry OBJECT-TYPE
    SYNTAX         NtnQosQsetPriAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosQsetPriAssignment class."

    INDEX { ntnQosQsetPriAssignmentId }
    ::= { ntnQosQsetPriAssignmentTable 1 }

NtnQosQsetPriAssignmentEntry ::= SEQUENCE {
        ntnQosQsetPriAssignmentId          IndexInteger,
        ntnQosQsetPriAssignmentQset        Integer32,
        ntnQosQsetPriAssignmentPri         QosIeee802Cos,
        ntnQosQsetPriAssignmentQueue       Integer32,
        ntnQosQsetPriAssignmentStorageType StorageType,
        ntnQosQsetPriAssignmentStatus      RowStatus
}

ntnQosQsetPriAssignmentId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that is used to uniquely identify the 
        instance of the ntnQosQsetPriAssignment class."

    ::= { ntnQosQsetPriAssignmentEntry 1 }

ntnQosQsetPriAssignmentQset OBJECT-TYPE
    SYNTAX         Integer32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The queue set with which an interface must be 
        configured to support the Pri-to-queue assignment 
        described by this instance. The specified queue
        set must be defined in the ntnQosIfQueueTable prior
        to being referenced by this entry. Otherwise a 
        'priAssociationUnknown(3)' error code will be 
        returned."

    ::= { ntnQosQsetPriAssignmentEntry 2 }

ntnQosQsetPriAssignmentPri OBJECT-TYPE
    SYNTAX         QosIeee802Cos
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802.1p user priority to which this class 
        instance applies."

    ::= { ntnQosQsetPriAssignmentEntry 3 }

ntnQosQsetPriAssignmentQueue OBJECT-TYPE
    SYNTAX         Integer32 (1..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The specific queue, within the queue set that is
        associated with the interface set identified by the
        ntnQosQsetPriAssignmentRoles tag, on which traffic 
        with the specified user priority, dictated by the 
        ntnQosQsetPriAssignmentPri value, is placed. Failure 
        to specify an appropriate queue results in a
        'priAssociationConflict(4)' error indication being 
        returned."

    ::= { ntnQosQsetPriAssignmentEntry 4 }

ntnQosQsetPriAssignmentStorageType OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosQsetPriAssignmentStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosQsetPriAssignmentEntry 5 }

ntnQosQsetPriAssignmentStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosQsetPriAssignmentEntry 6 }

--
-- Nortel Networks DSCP Assignment Table
--
-- Supports the assignment of DSCP values to queues 
-- for each queue set.
--

ntnQosQsetDscpAssignmentTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosQsetDscpAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Supports the assignment of DSCP values to 
        a queue for each interface with a specific 
        queue set. There will be 64 instances of this 
        class for each supported queue set."

    ::= { ntnQosPolicyEvolPibClasses 3 }

ntnQosQsetDscpAssignmentEntry OBJECT-TYPE
    SYNTAX         NtnQosQsetDscpAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosQsetDscpAssignment class."

    INDEX { ntnQosQsetDscpAssignmentId }
    ::= { ntnQosQsetDscpAssignmentTable 1 }

NtnQosQsetDscpAssignmentEntry ::= SEQUENCE {
        ntnQosQsetDscpAssignmentId          IndexInteger,
        ntnQosQsetDscpAssignmentQset        Integer32,
        ntnQosQsetDscpAssignmentDscp        Dscp,
        ntnQosQsetDscpAssignmentQueue       Integer32,
        ntnQosQsetDscpAssignmentStorageType StorageType,
        ntnQosQsetDscpAssignmentStatus      RowStatus
}

ntnQosQsetDscpAssignmentId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that is used to uniquely identify the 
        instance of the ntnQosQsetDscpAssignment class."

    ::= { ntnQosQsetDscpAssignmentEntry 1 }

ntnQosQsetDscpAssignmentQset OBJECT-TYPE
    SYNTAX         Integer32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The queue set with which an interface must be 
        configured to support the Dscp-to-queue assignment 
        described by this instance. The specified queue
        set must be defined in the ntnQosIfQueueTable prior
        to being referenced by this entry. Otherwise a 
        'priAssociationUnknown(3)' error code will be 
        returned."

    ::= { ntnQosQsetDscpAssignmentEntry 2 }

ntnQosQsetDscpAssignmentDscp OBJECT-TYPE
    SYNTAX         Dscp
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The DSCP value to which this class 
        instance applies."

    ::= { ntnQosQsetDscpAssignmentEntry 3 }

ntnQosQsetDscpAssignmentQueue OBJECT-TYPE
    SYNTAX         Integer32 (1..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The specific queue, within the queue set that is
        associated with the interface set identified by the
        ntnQosQsetDscpAssignmentRoles tag, on which traffic 
        with the specified user priority, dictated by the 
        ntnQosQsetDscpAssignmentDscp value, is placed. Failure 
        to specify an appropriate queue results in a
        'priAssociationConflict(4)' error indication being 
        returned."

    ::= { ntnQosQsetDscpAssignmentEntry 4 }

ntnQosQsetDscpAssignmentStorageType OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosQsetDscpAssignmentStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosQsetDscpAssignmentEntry 5 }

ntnQosQsetDscpAssignmentStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosQsetDscpAssignmentEntry 6 }

--
-- Nortel Networks Shaping Parameters Table
--
-- Supports the definition of shaping parameters that
-- can be applied to individual flows
--

ntnQosShapingParamsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosShapingParamsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Supports the definition of shaping parameters
        that can be applied to individual flows. Shaping
        criteria is associated with a flow using the
        qosTargetShaper attribute of the qosTarget class."

    ::= { ntnQosPolicyEvolPibClasses 4 }

ntnQosShapingParamsEntry OBJECT-TYPE
    SYNTAX         NtnQosShapingParamsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosShapingParams class."

    INDEX { ntnQosShapingParamsId }
    ::= { ntnQosShapingParamsTable 1 }

NtnQosShapingParamsEntry ::= SEQUENCE {
        ntnQosShapingParamsId          IndexInteger,
        ntnQosShapingParamsRate        Unsigned32,
        ntnQosShapingParamsBurstSize   Unsigned32,
        ntnQosShapingParamsQueueSize   INTEGER,
        ntnQosShapingParamsStorageType StorageType,
        ntnQosShapingParamsStatus      RowStatus,
        ntnQosShapingParamsLabel       SnmpAdminString
}

ntnQosShapingParamsId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that is used to uniquely identify the 
        instance of the ntnQosShapingParams class."

    ::= { ntnQosShapingParamsEntry 1 }

ntnQosShapingParamsRate OBJECT-TYPE
    SYNTAX         Unsigned32 (0..'ffffffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum rate, in kilobits per second, at which
        traffic shaped using this rate criteria will be transmitted
        over a given period of time. Transmitted traffic may 
        exceed this rate for short periods in accordance with
        the associated burst size. Typically, this value specifies
        the rate at which tokens are added to a token bucket 
        used to shape flows.

        This object specifies a rate in kilobits per second 
        units such that, for example, a value of 100 equates 
        to a shaped flow being transmitted at a maximum rate
        of 100,000 bits per second."

    ::= { ntnQosShapingParamsEntry 2 }

ntnQosShapingParamsBurstSize OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum traffic burst size, in bytes, that can
        be transmitted without experiencing a shaping delay.
        Typically, this value represents the maximum number
        of tokens in a token bucket.

        Note that the value of this attribute may modified 
        in an implementation dependent, such as being rounded
        down to an acceptable value, to account for system
        limitations."

    ::= { ntnQosShapingParamsEntry 3 }

ntnQosShapingParamsQueueSize OBJECT-TYPE
    SYNTAX         INTEGER {
                       onePkt(1),  
                       twoPkts(2),
                       fourPkts(3),
                       eightPkts(4),
                       sixteenPkts(5)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The amount of traffic, in packets, that may exceed the
        maximum burst size and still be queued for transmission.
        This value specifies the size of a shaping queue that 
        holds a flow's traffic that is being delayed for shaping 
        purposes. The specified enumeration dictates whether one
        ('onePkt'), two ('twoPkts'), four ('fourPkts'), eight,
        ('eightPkts') or sixteen ('sixteenPkts') packets can be
        held in the shaping queue prior to transmission."

    ::= { ntnQosShapingParamsEntry 4 }

ntnQosShapingParamsStorageType OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosQsetDscpAssignmentStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosShapingParamsEntry 5 }

ntnQosShapingParamsStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosShapingParamsEntry 6 }

ntnQosShapingParamsLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the entry in a textual manner."

    ::= { ntnQosShapingParamsEntry 7 }

--
-- Nortel Networks Classifier Classes
--

ntnClassifierClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 5 }

--
-- Nortel Networks DiffServ Multi-Field Classifier objects
--

ntnDsMultiFieldClfrNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnDsMultiFieldClfrId, or a zero to indicate 
        that none exist."

    ::= { ntnClassifierClasses 1 }

ntnDsMultiFieldClfrTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnDsMultiFieldClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A table of IP Multi-Field Classifier filter 
        entries that a system may use to identify IP 
        traffic."

    ::= { ntnClassifierClasses 2 }

ntnDsMultiFieldClfrEntry OBJECT-TYPE
    SYNTAX         NtnDsMultiFieldClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An IP Multi-Field Classifier entry describes 
        a single filter."

    INDEX { ntnDsMultiFieldClfrId }
    ::= { ntnDsMultiFieldClfrTable 1 }

NtnDsMultiFieldClfrEntry ::= SEQUENCE {
        ntnDsMultiFieldClfrId              IndexInteger,
        ntnDsMultiFieldClfrAddrType        InetAddressType,
        ntnDsMultiFieldClfrDstAddr         InetAddress,
        ntnDsMultiFieldClfrDstPrefixLength InetAddressPrefixLength,
        ntnDsMultiFieldClfrSrcAddr         InetAddress,
        ntnDsMultiFieldClfrSrcPrefixLength InetAddressPrefixLength,
        ntnDsMultiFieldClfrDscp            DscpOrAny,
        ntnDsMultiFieldClfrFlowId          FlowIdOrAny,
        ntnDsMultiFieldClfrProtocol        Unsigned32,
        ntnDsMultiFieldClfrDstL4PortMin    InetPortNumber,
        ntnDsMultiFieldClfrDstL4PortMax    InetPortNumber,
        ntnDsMultiFieldClfrSrcL4PortMin    InetPortNumber,
        ntnDsMultiFieldClfrSrcL4PortMax    InetPortNumber,
        ntnDsMultiFieldClfrStorage         StorageType,
        ntnDsMultiFieldClfrStatus          RowStatus,
        ntnDsMultiFieldClfrLabel           SnmpAdminString,
        ntnDsMultiFieldClfrSessionId       Unsigned32,
        ntnDsMultiFieldClfrVersion         VersionIndicator,
        ntnDsMultiFieldClfrIpFlags         BITS,
        ntnDsMultiFieldClfrTcpCtrlFlags    BITS,
        ntnDsMultiFieldClfrIpv4Options     INTEGER
      
}

ntnDsMultiFieldClfrId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the Multi-Field 
        Classifier filter entries.  Managers obtain 
        new values for row creation in this table by 
        reading ntnDsMultiFieldClfrNextFree.

        Version 1/2 attribute."

    ::= { ntnDsMultiFieldClfrEntry 1 }

ntnDsMultiFieldClfrAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of IP address used by this classifier 
        entry.  While other types of addresses are 
        defined in the InetAddressType textual convention, 
        and DNS names, a classifier can only look at 
        packets on the wire. Therefore, this object is 
        limited to IPv4 and IPv6 addresses.

        Version 1/2 attribute."

    DEFVAL { ipv4 }
    ::= { ntnDsMultiFieldClfrEntry 2 }

ntnDsMultiFieldClfrDstAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        destination IP address. This may not be a DNS 
        name, but may be an IPv4 or IPv6 prefix.  
        ntnDsMultiFieldClfrDstPrefixLength indicates the 
        number of bits that are relevant.

        Version 1/2 attribute."

    DEFVAL { '00000000'h }
    ::= { ntnDsMultiFieldClfrEntry 3 }

ntnDsMultiFieldClfrDstPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in 
        ntnDsMultiFieldClfrDstAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single 
        host address, and a length between 0 and 32 
        indicates the use of a CIDR Prefix. IPv6 is 
        similar, except that prefix lengths range 
        from 0..128.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnDsMultiFieldClfrEntry 4 }

ntnDsMultiFieldClfrSrcAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        source IP address. This may not be a DNS name, 
        but may be an IPv4 or IPv6 prefix. 
        ntnDsMultiFieldClfrSrcPrefixLength indicates 
        the number of bits that are relevant.

        Version 1/2 attribute."

    DEFVAL { '00000000'h }
    ::= { ntnDsMultiFieldClfrEntry 5 }

ntnDsMultiFieldClfrSrcPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in
        ntnDsMultiFieldClfrSrcAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single host 
        address, and a length between 0 and 32 indicates 
        the use of a CIDR Prefix. IPv6 is similar, 
        except that prefix lengths range from 0..128.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnDsMultiFieldClfrEntry 6 }

ntnDsMultiFieldClfrDscp OBJECT-TYPE
    SYNTAX         DscpOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The value that the DSCP in the packet must 
        have to match this entry. A value of -1 
        indicates that a specific DSCP value has not 
        been defined and thus all DSCP values are 
        considered a match.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnDsMultiFieldClfrEntry 7 }

ntnDsMultiFieldClfrFlowId OBJECT-TYPE
    SYNTAX         FlowIdOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The flow identifier in an IPv6 header.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnDsMultiFieldClfrEntry 8 }

ntnDsMultiFieldClfrProtocol OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP protocol to match against the IPv4 
        protocol number or the IPv6 Next-Header number 
        in the packet. A value of 255 means match all.  
        Note the protocol number of 255 is reserved by 
        IANA, and Next-Header number of 0 is used in 
        IPv6.

        Version 1/2 attribute."

    DEFVAL { 255 }
    ::= { ntnDsMultiFieldClfrEntry 9 }

ntnDsMultiFieldClfrDstL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnDsMultiFieldClfrEntry 10 }

ntnDsMultiFieldClfrDstL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry. This value must 
        be equal to or greater than the value specified 
        for this entry in ntnDsMultiFieldClfrDstL4PortMin.

        Version 1/2 attribute."

    DEFVAL { 65535 }
    ::= { ntnDsMultiFieldClfrEntry 11 }

ntnDsMultiFieldClfrSrcL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnDsMultiFieldClfrEntry 12 }

ntnDsMultiFieldClfrSrcL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry. This value 
        must be equal to or greater than the value 
        specified for this entry in 
        ntnDsMultiFieldClfrSrcL4PortMin.

        Version 1/2 attribute."

    DEFVAL { 65535 }
    ::= { ntnDsMultiFieldClfrEntry 13 }

ntnDsMultiFieldClfrStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnDsMultiFieldClfrEntry 14 }

ntnDsMultiFieldClfrStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnDsMultiFieldClfrEntry 15 }

ntnDsMultiFieldClfrLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the classifier entry
        in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnDsMultiFieldClfrEntry 16 }

ntnDsMultiFieldClfrSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnDsMultiFieldClfrEntry 17 }

ntnDsMultiFieldClfrVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnDsMultiFieldClfrTable."

    DEFVAL  { version1 }
    ::= { ntnDsMultiFieldClfrEntry 18 }

ntnDsMultiFieldClfrIpFlags OBJECT-TYPE
    SYNTAX         BITS {
                        ipv4MfFlagSet(0),
                        ipv4DfFlagSet(1)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Represents the flags present in an IPv4 header. 
        If a bit that is associated with a specific IP flag 
        is set in this attribute, IPv4 packets with the 
        specified flag set in the header will match this 
        classifier. 

        Version 2 attribute."

    DEFVAL  { { } }
    ::= { ntnDsMultiFieldClfrEntry 19 }

ntnDsMultiFieldClfrTcpCtrlFlags OBJECT-TYPE
    SYNTAX         BITS {
                        tcpUrgFlagSet(0),
                        tcpAckFlagSet(1),
                        tcpPshFlagSet(2),
                        tcpRstFlagSet(3),
                        tcpSynFlagSet(4),
                        tcpFinFlagSet(5)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Represents the control flags (code bits) present in 
        an TCP header. If a bit that is associated with a 
        specific TCP control flag is set in this attribute, 
        TCP packets with the specified flag set in the header 
        will match this classifier. 

        Version 2 attribute."

    DEFVAL  { { } }
    ::= { ntnDsMultiFieldClfrEntry 20 }

ntnDsMultiFieldClfrIpv4Options OBJECT-TYPE
    SYNTAX         INTEGER  {
                       ipv4OptionsPresent(1),
                       ipv4OptionsNotPresent(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates whether the presence,
        or lack thereof, of IPv4 options in an IPv4
        packet should should be considered when looking
        for a match for this classifier entry.

        A value of 'ipv4OptionsPresent(1)' indicates 
        that only IPv4 packets with options will match 
        this classifier element.

        A value of 'ipv4OptionsNotPresent(2)' means that 
        only IPv4 packets without options will be 
        considered a match.

        A value of 'ignore(3)' means that the presence,
        or lack thereof, of IPv4 options in the received
        packet will not be considered when determining 
        whether a packet matches this classifier entry.

        Version 2 attribute."

    DEFVAL  { ignore }
    ::= { ntnDsMultiFieldClfrEntry 21 }

--
-- Nortel Networks Layer 2 Multi-Field Classifier objects
--

ntnL2MultiFieldClfrNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnL2MultiFieldClfrId, or a zero to indicate 
        that none exist."

    ::= { ntnClassifierClasses 3 }

ntnL2MultiFieldClfrTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnL2MultiFieldClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "IEEE 802-based classifier definitions. A 
        class that contains attributes of IEEE 802 
        (e.g., 802.3) traffic that form an association 
        that is used to perform traffic classification." 

    ::= { ntnClassifierClasses 4 }

ntnL2MultiFieldClfrEntry OBJECT-TYPE
    SYNTAX         NtnL2MultiFieldClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "IEEE 802-based classifier definitions. An entry 
        specifies (potentially) several distinct matching 
        components. Each component is tested against the 
        data in a frame individually. An overall match 
        occurs when all of the individual components 
        match the data they are compared against in the 
        frame being processed. A failure of any one test 
        causes the overall match to fail.

        Wildcards may be specified for those fields that 
        are not relevant."

    INDEX { ntnL2MultiFieldClfrId }
    ::= { ntnL2MultiFieldClfrTable 1 }

NtnL2MultiFieldClfrEntry ::= SEQUENCE {
        ntnL2MultiFieldClfrId             IndexInteger,
        ntnL2MultiFieldClfrDstAddr        MacAddress,
        ntnL2MultiFieldClfrDstAddrMask    MacAddress,
        ntnL2MultiFieldClfrSrcAddr        MacAddress,
        ntnL2MultiFieldClfrSrcAddrMask    MacAddress,
        ntnL2MultiFieldClfrVlanIdMin      Integer32,
        ntnL2MultiFieldClfrVlanIdMax      Integer32,
        ntnL2MultiFieldClfrVlanTag        INTEGER,
        ntnL2MultiFieldClfrEtherType      Integer32,
        ntnL2MultiFieldClfrUserPriority   INTEGER,
        ntnL2MultiFieldClfrStorage        StorageType,
        ntnL2MultiFieldClfrStatus         RowStatus,
        ntnL2MultiFieldClfrLabel          SnmpAdminString,
        ntnL2MultiFieldClfrSessionId      Unsigned32,
        ntnL2MultiFieldClfrVersion        VersionIndicator,
        ntnL2MultiFieldClfrPktType        INTEGER,
        ntnL2MultiFieldClfrIvidMin        Integer32,
        ntnL2MultiFieldClfrIvidMax        Integer32,
        ntnL2MultiFieldClfrTPID           Integer32,
        ntnL2MultiFieldClfrCFI            INTEGER,
        ntnL2MultiFieldClfrITPID          Integer32,
        ntnL2MultiFieldClfrICFI           INTEGER,
        ntnL2MultiFieldClfrIUserPriority  INTEGER
}

ntnL2MultiFieldClfrId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that uniquely 
        identifies this 802 classifier among all 
        of the 802 classifiers.

        Version 1/2 attribute."

    ::= { ntnL2MultiFieldClfrEntry 1 }

ntnL2MultiFieldClfrDstAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 address against which the 802 DA of 
        incoming traffic streams will be compared. 
        Frames whose 802 DA matches the physical 
        address specified by this object, taking 
        into account address wildcarding as specified 
        by the ntnL2MultiFieldClfrDstAddrMask object, 
        are potentially  subject to the processing 
        guidelines that are associated with this 
        entry through the related action class.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnL2MultiFieldClfrEntry 2 }

ntnL2MultiFieldClfrDstAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 
        destination address that should be considered 
        when performing a 802 DA comparison against 
        the address specified in the 
        ntnL2MultiFieldClfrDstAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 DA in 
        received frames to derive the value to be 
        compared against the ntnL2MultiFieldClfrDstAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnL2MultiFieldClfrDstAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnL2MultiFieldClfrDstAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnL2MultiFieldClfrDstAddr object.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnL2MultiFieldClfrEntry 3 }

ntnL2MultiFieldClfrSrcAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 MAC address against which the 802 
        MAC SA of incoming traffic streams will be 
        compared. Frames whose 802 MAC SA matches the 
        physical address specified by this object, 
        taking into account address wildcarding as 
        specified by the ntnL2MultiFieldClfrSrcAddrMask 
        object, are potentially subject to the 
        processing guidelines that are associated with 
        this entry through the related action class.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnL2MultiFieldClfrEntry 4 }

ntnL2MultiFieldClfrSrcAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 MAC 
        source address that should be considered when 
        performing a 802 MAC SA comparison against 
        the address specified in the 
        ntnL2MultiFieldClfrSrcAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 MAC SA 
        in received frames to derive the value to be 
        compared against the ntnL2MultiFieldClfrSrcAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnL2MultiFieldClfrSrcAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnL2MultiFieldClfrSrcAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnL2MultiFieldClfrSrcAddr object.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnL2MultiFieldClfrEntry 5 }

ntnL2MultiFieldClfrVlanIdMin OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnL2MultiFieldClfrVlanIdMin value must be 
        less than or equal to the 
        ntnL2MultiFieldClfrVlanIdMax value.

        Setting the ntnL2MultiFieldClfrVlanIdMin object 
        to 1 and the ntnL2MultiFieldClfrVlanIdMax to 
        4094 indicates that VLAN data should not be 
        considered during traffic classification.

        If a frame is double tagged, this value
        represents the outer VLAN ID (Ovid).

        Version 1/2 attribute." 

    DEFVAL { 1 }
    ::= { ntnL2MultiFieldClfrEntry 6 }

ntnL2MultiFieldClfrVlanIdMax OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnL2MultiFieldClfrVlanIdMax value must 
        be greater than or equal to the 
        ntnL2MultiFieldClfrVlanIdMin value.

        Setting the ntnL2MultiFieldClfrVlanIdMin 
        object to 1 and the ntnL2MultiFieldClfrVlanIdMax 
        to 4094 indicates that VLAN data should not 
        be considered during traffic classification.

        If a frame is double tagged, this value
        represents the outer VLAN ID (Ovid).

        Version 1/2 attribute."

    DEFVAL { 4094 }
    ::= { ntnL2MultiFieldClfrEntry 7 }

ntnL2MultiFieldClfrVlanTag OBJECT-TYPE
    SYNTAX         INTEGER  {
                       untagged(1),
                       tagged(2),
                       ignore(3),
                       doubleTagged(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        packet format that frames must have to match 
        this L2 classifier entry.

        A value of 'untagged(1)' indicates that only 
        frames received untagged will match this 
        classifier component.

        A value of 'tagged(2)' means that only frames
        received tagged (both single tagged and double
        tagged) will be considered a match.

        A value of 'ignore(3)' means that the presence,
        or lack thereof, of a VLAN tag in the received
        packet will not be considered when determining 
        whether a frame matches this classifier entry.

        A value of 'doubleTagged(4)' means that only 
        frames received with an inner and outer tag 
        (i.e., a double tagged frame) will be considered 
        a match.

        Version 1/2 attribute."

    DEFVAL  { ignore }
    ::= { ntnL2MultiFieldClfrEntry 8 }

ntnL2MultiFieldClfrEtherType OBJECT-TYPE
    SYNTAX         Integer32 (0..'ffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the value that will be 
        compared against the value contained in the 
        EtherType field of an IEEE 802 frame. Example 
        settings would include 'IP' (0x0800), 'ARP' 
        (0x0806) and 'IPX' (0x8137).

        Setting the ntnL2MultiFieldClfrEtherType object 
        to 0xFFFF indicates that EtherType data should 
        not be considered during traffic classification.
        Note the EtherType value of 0xFFFF is reserved 
        by IANA.

        Version 1/2 attribute."

    DEFVAL { 'ffff'h }
    ::= { ntnL2MultiFieldClfrEntry 9 }

ntnL2MultiFieldClfrUserPriority OBJECT-TYPE
    SYNTAX         INTEGER {
                       matchPriority0(1),
                       matchPriority1(2),
                       matchPriority2(3),
                       matchPriority3(4),
                       matchPriority4(5),
                       matchPriority5(6),
                       matchPriority6(7),
                       matchPriority7(8),
                       matchAllPriorities(9)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802.1p user priority value against which 
        the value contained in the user priority 
        field of a tagged 802.1 frame is compared. A 
        test for equality is performed when 
        determining if a match exists between the data 
        in a data link layer frame and the value of 
        this classifier.

        Setting the value of this object to 
        'matchAllPriorities(9)' causes all user priority 
        values to match this attribute. This essentially 
        makes any comparisons with regard to user 
        priority values unnecessary.

        Version 1/2 attribute."

    DEFVAL { matchAllPriorities }
    ::= { ntnL2MultiFieldClfrEntry 10 }

ntnL2MultiFieldClfrStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnL2MultiFieldClfrEntry 11 }

ntnL2MultiFieldClfrStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnL2MultiFieldClfrEntry 12 }

ntnL2MultiFieldClfrLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the classifier entry
        in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnL2MultiFieldClfrEntry 13 }

ntnL2MultiFieldClfrSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnL2MultiFieldClfrEntry 14 }

ntnL2MultiFieldClfrVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnL2MultiFieldClfrTable."

    DEFVAL  { version1 }
    ::= { ntnL2MultiFieldClfrEntry 15 }

ntnL2MultiFieldClfrPktType OBJECT-TYPE
    SYNTAX         INTEGER  {
                       ethernetII(1),
                       snap(2),
                       llc(3),
                       ignore(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        frame format that frames must have to match 
        this L2 classifier entry.

        A value of 'ethernetII(1)' indicates that only 
        Ethernet II format frames will match this 
        classifier component.

        A value of 'snap(2)' indicates that only 
        IEEE 802 SNAP format frames will match this 
        classifier component.

        A value of 'llc(3)' indicates that only 
        IEEE 802 LLC format frames will match this 
        classifier component.

        A value of 'ignore(4)' means that the frame,
        format will not be considered when determining 
        whether a frame matches this classifier entry.

        Version 2 attribute."

    DEFVAL  { ignore }
    ::= { ntnL2MultiFieldClfrEntry 16 }

ntnL2MultiFieldClfrIvidMin OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the Inner VLAN ID (Ivid) 
        in a double tagged packet must have in order to 
        match this classifier entry.

        The ntnL2MultiFieldClfrIvidMin value must be 
        less than or equal to the 
        ntnL2MultiFieldClfrIvidMax value.

        Setting the ntnL2MultiFieldClfrIvidMin object 
        to 1 and the ntnL2MultiFieldClfrIvidMax to 
        4094 indicates that inner VLAN tag data should 
        not be considered during traffic classification.

        A non-default value for this attribute may only
        be specified if the ntnL2MultiFieldClfrVlanTag
        attribute has a value of 'doubleTagged(4)'.

        Version 2 attribute."

    DEFVAL { 1 }
    ::= { ntnL2MultiFieldClfrEntry 17 }

ntnL2MultiFieldClfrIvidMax OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the Inner VLAN ID (Ivid) 
        in a double tagged packet must have in order to 
        match this classifier entry.

        The ntnL2MultiFieldClfrIvidMax value must 
        be greater than or equal to the 
        ntnL2MultiFieldClfrIvidMin value.

        Setting the ntnL2MultiFieldClfrIvidMin 
        object to 1 and the ntnL2MultiFieldClfrIvidMax 
        to 4094 indicates that VLAN data should not 
        be considered during traffic classification.

        A non-default value for this attribute may only
        be specified if the ntnL2MultiFieldClfrVlanTag
        attribute has a value of 'doubleTagged(4)'.

        Version 2 attribute."

    DEFVAL { 4094 }
    ::= { ntnL2MultiFieldClfrEntry 18 }

ntnL2MultiFieldClfrTPID OBJECT-TYPE
    SYNTAX         Integer32 (0..'ffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the value that will be 
        compared against the value contained in the 
        Ethertype field of the outer tag of a 
        single or a double tagged (802.1ad QinQ) packet.

        Setting the ntnL2MultiFieldClfrTPID object 
        to 0xFFFF indicates that EtherType data should 
        not be considered during traffic classification.
        Note the EtherType value of 0xFFFF is reserved 
        by IANA.

        The default value is 0x8100, considering the
        standard 0x8100 value as the tag protocol
        identifier for the vlan tag.

        Version 1/2 attribute."

    DEFVAL { '8100'h }
    ::= { ntnL2MultiFieldClfrEntry 19 }

ntnL2MultiFieldClfrCFI OBJECT-TYPE
    SYNTAX         INTEGER  {
                       cfiZero(1),
                       cfiOne(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        frame format that frames must have to match 
        this L2 classifier entry.

        A value of 'cfiZero(1)' indicates that only 
        tagged frames with the CFI bit set to zero 
        will match this classifier component.

        A value of 'cfiOne(2)' indicates that only 
        tagged frames with the CFI bit is set to one 
        will match this classifier component.

        A value of 'ignore(3)' means that the frame,
        format will not be considered when determining 
        whether a frame matches this classifier entry.

        Version 1/2 attribute."

    DEFVAL  { ignore }
    ::= { ntnL2MultiFieldClfrEntry 20 }

ntnL2MultiFieldClfrITPID OBJECT-TYPE
    SYNTAX         Integer32 (0..'ffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the value that will be 
        compared against the value contained in the 
        Ethertype field of the inner tag of a 
        double tagged (802.1ad QinQ) packet.

        Setting the ntnL2MultiFieldClfrITPID object 
        to 0xFFFF indicates that EtherType data should 
        not be considered during traffic classification.
        Note the EtherType value of 0xFFFF is reserved 
        by IANA.

        The default value is 0x8100, considering the
        standard 0x8100 value as the tag protocol
        identifier for the vlan tag.

        Version 1/2 attribute."

    DEFVAL { '8100'h }
    ::= { ntnL2MultiFieldClfrEntry 21 }

ntnL2MultiFieldClfrICFI OBJECT-TYPE
    SYNTAX         INTEGER  {
                       cfiZero(1),
                       cfiOne(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        frame format that frames must have to match 
        this L2 classifier entry.

        A value of 'cfiZero(1)' indicates that only 
        double tagged frames with the CFI bit set 
        to zero in the inner tag will match this 
        classifier component.

        A value of 'cfiOne(1)' indicates that only 
        double tagged frames with the CFI bit set 
        to one in the inner tag will match this 
        classifier component.

        A value of 'ignore(3)' means that the frame,
        format will not be considered when determining 
        whether a frame matches this classifier entry.

        Version 1/2 attribute."

    DEFVAL  { ignore }
    ::= { ntnL2MultiFieldClfrEntry 22 }

ntnL2MultiFieldClfrIUserPriority OBJECT-TYPE
    SYNTAX         INTEGER {
                       matchPriority0(1),
                       matchPriority1(2),
                       matchPriority2(3),
                       matchPriority3(4),
                       matchPriority4(5),
                       matchPriority5(6),
                       matchPriority6(7),
                       matchPriority7(8),
                       matchAllPriorities(9)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802.1p user priority value against which 
        the value contained in the user priority 
        field of the inner tag of a double tagged 
        802.1 frame is compared. A test for equality 
        is performed when determining if a match exists 
        between the data in a data link layer frame and 
        the value of this classifier.

        Setting the value of this object to 
        'matchAllPriorities(9)' causes all user priority 
        values to match this attribute. This essentially 
        makes any comparisons with regard to user 
        priority values unnecessary.

        Version 1/2 attribute."

    DEFVAL { matchAllPriorities }
    ::= { ntnL2MultiFieldClfrEntry 23 }

--
-- Nortel Networks System Classifier objects
--

ntnSystemClfrNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnSystemClfrId, or a zero to indicate 
        that none exist."

    ::= { ntnClassifierClasses 5 }

ntnSystemClfrTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnSystemClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The System Classifier Table defines 
        classification data that is platform or 
        hardware specific."

    ::= { ntnClassifierClasses 6 }

ntnSystemClfrEntry OBJECT-TYPE
    SYNTAX         NtnSystemClfrEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the System Classifier Table 
        describes classification data that is 
        specifically related to system or hardware 
        capabilities. As such, support for this 
        table or for individual attributes 
        contained in the table will vary from 
        system to system. Entries within this 
        table are referenced through the Classifier 
        Component Table (ntnClfrComponentTable) to 
        provide system-specific classification data."

    INDEX { ntnSystemClfrId }
    ::= { ntnSystemClfrTable 1 }

NtnSystemClfrEntry ::= SEQUENCE {
        ntnSystemClfrId                 IndexInteger,
        ntnSystemClfrUnknownUcastFrames TruthValue,
        ntnSystemClfrUnknownMcastFrames TruthValue,
        ntnSystemClfrKnownUcastFrames   TruthValue,
        ntnSystemClfrKnownMcastFrames   TruthValue,
        ntnSystemClfrBcastFrames        TruthValue,
        ntnSystemClfrPatternPosition    OCTET STRING,
        ntnSystemClfrPatternData        OCTET STRING,
        ntnSystemClfrStorage            StorageType,
        ntnSystemClfrStatus             RowStatus,
        ntnSystemClfrPatternFormat      INTEGER,
        ntnSystemClfrLabel              SnmpAdminString,
        ntnSystemClfrSessionId          Unsigned32,
        ntnSystemClfrVersion            VersionIndicator,
        ntnSystemClfrUnknownIpMcast     TruthValue,
        ntnSystemClfrKnownIpMcast       TruthValue,
        ntnSystemClfrNonIpPkt           TruthValue,
        ntnSystemClfrPatternIpVersion   INTEGER,
        ntnSystemClfrUnknownNonIpMcast  TruthValue,
        ntnSystemClfrKnownNonIpMcast    TruthValue,
        ntnSystemClfrPatternL2Format    INTEGER
}

ntnSystemClfrId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the system 
        classifier entries. Managers can obtain 
        new index values for row creation in this 
        table by reading ntnSystemClfrNextFree.

        Version 1/2 attribute."

    ::= { ntnSystemClfrEntry 1 }

ntnSystemClfrUnknownUcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing an unknown 
        unicast destination address will match this 
        classification entry. A value of 'false(2)' 
        indicates that no classification is requested 
        based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 2 }

ntnSystemClfrUnknownMcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing an unknown 
        multicast destination address will match 
        this classification entry. A value of 
        'false(2)' indicates that no classification 
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 3 }

ntnSystemClfrKnownUcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a known 
        unicast destination address will match 
        this classification entry. A value of 
        'false(2)' indicates that no classification 
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 4 }

ntnSystemClfrKnownMcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a known 
        multicast destination address will match 
        this classification entry. A value of 
        'false(2)' indicates that no classification 
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 5 }

ntnSystemClfrBcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a broadcast 
        destination address will match this 
        classification entry. A value of 'false(2)' 
        indicates that no classification is 
        requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 6 }

ntnSystemClfrPatternPosition OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..128))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Supports arbitrary pattern match classification. 
        Up to 128 bytes of data within the first 128 bytes 
        of a packet can be identified for pattern matching 
        purposes. This object and the ntnSystemClfrPatternData 
        object specify byte patterns and their position in 
        a packet. When a packet is classified using this data, 
        the appropriate bytes, or portions thereof, in the 
        packet are compared against the byte patterns defined 
        by the ntnSystemClfrPatternData attribute. If the 
        data at the specified packet offset is the same,
        the packet is considered a match.

        The byte positions, and the pertinent bits within
        each identified byte, used for comparison purposes 
        are specified using this attribute. The positions
        to be matched are identified by setting the appropriate
        bits to one. All other bits must be set to zero. 

        For example, to specify that byte positions 5-8 
        and the high-order nibble (4 bits) of bytes 13-16 
        should be examined, this attribute would be set 
        as follows:

        ntnSystemClfrPatternPosition (size 16): 
        00:00:00:00:FF:FF:FF:FF:00:00:00:00:0F:0F:0F:0F

        The target byte patterns would then be placed 
        in bytes 5-8 and in portions of bytes 13-16 of the
        ntnSystemClfrPatternData attribute:

        ntnSystemClfrPatternData (size 16): 
        00:00:00:00:XX:XX:XX:XX:00:00:00:00:0Y:0Y:0Y:0Y

        Note that an implementation may not support pattern
        matching, also know as offset filtering, for the
        maximum number of bytes supported by the pattern
        match attributes. The number of bytes that can 
        contain data for comparison purposes and the position
        of those bytes in relation to the start of a packet 
        are thus implementation dependent.

        Use of this object and the associated 
        ntnSystemClfrPatternData object invalidates the 
        use of any other classification data in this and 
        related (through the ntnClfrComponentTable) 
        classifier entries. In other words, providing an 
        explicit pattern overrides the implicit patterns 
        defined when classification data is specified 
        for other fields, such as the IP source address 
        or EtherType classification attributes.

        A zero length string is used to indicate that
        explicit pattern matching is not requested.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnSystemClfrEntry 7 }

ntnSystemClfrPatternData OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..128))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Supports arbitrary pattern match classification. 
        Up to 128 bytes of data within the first 128 bytes 
        of a packet can be identified for pattern matching 
        purposes. This object and the 
        ntnSystemClfrPatternPosition object specify byte 
        patterns and their position in a packet. When a 
        packet is classified using this data, the appropriate 
        bytes, or portions thereof, in the packet are compared 
        against the byte patterns defined by the this 
        attribute. If the data at the specified packet offset 
        is the same, the packet is considered a match.

        The byte patterns used for comparison purposes 
        are specified using this attribute. The target 
        data is placed in the octet string at the 
        positions specified through the 
        ntnSystemClfrPatternPosition attribute. All 
        other bytes should be set to zero

        For example, to specify that byte positions 5-8 
        and the high-order nibble (4 bits) of bytes 13-16 
        should be examined, the associated
        ntnSystemClfrPatternPosition value would be set 
        as follows:

        ntnSystemClfrPatternPosition (size 16): 
        00:00:00:00:FF:FF:FF:FF:00:00:00:00:0F:0F:0F:0F

        The target byte patterns would then be placed 
        in bytes 5-8 and in portions of bytes 13-16 of
        this attribute:

        ntnSystemClfrPatternData (size 16): 
        00:00:00:00:XX:XX:XX:XX:00:00:00:00:0Y:0Y:0Y:0Y

        Note that an implementation may not support pattern
        matching, also know as offset filtering, for the
        maximum number of bytes supported by the pattern
        match attributes. The number of bytes that can 
        contain data for comparison purposes and the position
        of those bytes in relation to the start of a packet 
        are thus implementation dependent.

        Use of this object and the associated 
        ntnSystemClfrPatternPosition object invalidates 
        the use of any other classification data in 
        this and related (through the ntnClfrComponentTable) 
        classifier entries. In other words, providing 
        an explicit pattern overrides the implicit 
        patterns defined when classification data is 
        specified for other fields, such as the IP source 
        address or EtherType classification attributes.

        A zero length string is used to indicate that 
        explicit pattern matching is not requested.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnSystemClfrEntry 8 }

ntnSystemClfrStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the associated 
        status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnSystemClfrEntry 9 }

ntnSystemClfrStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnSystemClfrEntry 10 }

ntnSystemClfrPatternFormat OBJECT-TYPE
    SYNTAX         INTEGER  {
                       untagged(1),
                       tagged(2),
                       doubleTagged(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        packet format that is used when specifying
        pattern match data.

        A value of 'untagged(1)' indicates that the 
        specified pattern match data does not include
        an 802.1Q tag.

        A value of 'tagged(2)' indicates that the 
        specified pattern match data does include
        an 802.1Q (single) tag.

        A value of 'doubleTagged(3)' indicates that 
        the specified pattern match data does include 
        an 802.1Q double tag.

        Version 1/2 attribute."

    DEFVAL  { tagged }
    ::= { ntnSystemClfrEntry 11 }

ntnSystemClfrLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the classifier entry
        in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnSystemClfrEntry 12 }

ntnSystemClfrSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnSystemClfrEntry 13 }

ntnSystemClfrVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnSystemClfrTable."

    DEFVAL  { version1 }
    ::= { ntnSystemClfrEntry 14 }

ntnSystemClfrUnknownIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', IP packets containing an unknown 
        multicast destination address will match this 
        classification entry. A value of 'false(2)' indicates 
        that no classification is requested based on this 
        address type. 

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 15 }

ntnSystemClfrKnownIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', IP packets containing a known 
        multicast destination address will match this 
        classification entry. A value of 'false(2)' indicates 
        that no classification is requested based on this 
        address type. 

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 16 }

ntnSystemClfrNonIpPkt OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non IP packets will match this 
        classification entry. A value of 'false(2)' indicates 
        that no classification is requested based on this 
        packet type. 

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 17 }

ntnSystemClfrPatternIpVersion OBJECT-TYPE
    SYNTAX         INTEGER  {
                       notApplicable(1),
                       nonIp(2),
                       ipv4(3),
                       ipv6(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the IP packet format 
        that is used when specifying pattern match 
        data.

        A value of 'notApplicable(1)' is used when
        the pattern match data can be specified without
        indicating the target packet type.

        A value of 'nonIp(2)' indicates that the 
        specified pattern match data should be applied
        to non-IP packets.

        A value of 'ipv4(3)' indicates that the 
        specified pattern match data should be applied
        to IPv4 packets.

        A value of 'ipv6(4)' indicates that the 
        specified pattern match data should be applied
        to IPv6 packets.

        Version 2 attribute."

    DEFVAL  { notApplicable }
    ::= { ntnSystemClfrEntry 18 }

ntnSystemClfrUnknownNonIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non-IP packets containing an unknown 
        multicast destination address will match this 
        classification entry. A value of 'false(2)' indicates 
        that no classification is requested based on this 
        address type. 

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 19 }

ntnSystemClfrKnownNonIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non-IP packets containing a known 
        multicast destination address will match this 
        classification entry. A value of 'false(2)' indicates 
        that no classification is requested based on this 
        address type. 

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnSystemClfrEntry 20 }

ntnSystemClfrPatternL2Format OBJECT-TYPE
    SYNTAX         INTEGER  {
                       notApplicable(1),
                       ethernetII(2),
                       snap(3),
                       llc(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the L2 packet format
        that is used when specifying pattern match
        data.

        A value of 'notApplicable(1)' is used when
        the pattern match data can be specified without
        indicating the target L2 packet format.

        A value of 'ethernetII(2)' indicates that the
        specified pattern match data should be applied
        to Ethernet II format frames.

        A value of 'snap(3)' indicates that the
        specified pattern match data should be applied
        to IEEE 802 SNAP format frames.

        A value of 'llc(4)' indicates that the
        specified pattern match data should be applied
        to IEEE 802 LLC format frames.

        Version 2 attribute."

    DEFVAL  { notApplicable }
    ::= { ntnSystemClfrEntry 21 }

--
-- Nortel Networks Classifier Component Set objects
--

ntnClfrComponentNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnClfrComponentId, or a zero to indicate 
        that none exist."

    ::= { ntnClassifierClasses 7 }

ntnClfrComponentTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnClfrComponentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The Classifier Component Table identifies 
        classification data from protocol, media and 
        hardware specific tables and links the data 
        to form a single classifier."

    ::= { ntnClassifierClasses 8 }

ntnClfrComponentEntry OBJECT-TYPE
    SYNTAX         NtnClfrComponentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the Classifier Component Table 
        describes a collection of classification data 
        from a single protocol, media or hardware 
        specific classifier table. Entries within 
        this table are linked through a common set 
        identifier. This identifier is used to 
        reference the constructed set of classification 
        data for a policy, through the ntnQosPolicyTable, 
        or for classifier block creation, through the 
        ntnClfrBlockTable."

    INDEX { ntnClfrComponentId }
    ::= { ntnClfrComponentTable 1 }

NtnClfrComponentEntry ::= SEQUENCE {
        ntnClfrComponentId        IndexInteger,
        ntnClfrComponentSpecific  RowPointer,
        ntnClfrComponentSetId     Unsigned32,
        ntnClfrComponentLabel     SnmpAdminString,
        ntnClfrComponentStorage   StorageType,
        ntnClfrComponentStatus    RowStatus,
        ntnClfrComponentSessionId Unsigned32,
        ntnClfrComponentVersion   VersionIndicator
}

ntnClfrComponentId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the classifier 
        component entries. Managers can obtain new 
        index values for row creation in this table 
        by reading ntnClfrComponentNextFree.

        Version 1/2 attribute."

    ::= { ntnClfrComponentEntry 1 }

ntnClfrComponentSpecific OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies an entry containing classification 
        data in a protocol, media or hardware specific 
        classifier table. Entries are referenced using 
        a RowPointer value  specifying the RowStatus 
        attribute of the entry being identified. 
        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. 
        Entries may not be deleted while still 
        referenced by an active entry in this table.

        Version 1/2 attribute."

    ::= { ntnClfrComponentEntry 2 }

ntnClfrComponentSetId OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies a set of classifier data. Entries 
        in this table with the same value for this 
        attribute are considered components of the 
        same classifier. This set identifier is used 
        to reference this classification data from 
        other QoS tables, including the QoS Policy 
        Table (ntnQosPolicyTable) and the Classifier 
        Block Table (ntnClfrBlockTable). Members of 
        a given classifier component set may be 
        prohibited from being deleted if the set is 
        referenced by an active entry in another table.

        Version 1/2 attribute."

    ::= { ntnClfrComponentEntry 3 }

ntnClfrComponentLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the classifier 
        component set in a textual manner. All 
        members of the same component set, as 
        determined by the value of the 
        ntnClfrComponentSetId attribute, must have 
        the same label.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnClfrComponentEntry 4 }

ntnClfrComponentStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnClfrComponentEntry 5 }

ntnClfrComponentStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnClfrComponentEntry 6 }

ntnClfrComponentSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL  { 0 }
    ::= { ntnClfrComponentEntry 7 }

ntnClfrComponentVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnClfrComponentTable.

        Members of the same classifier component set
        must all have the same version information."

    DEFVAL  { version1 }
    ::= { ntnClfrComponentEntry 8 }

--
-- Nortel Networks Classifier Block objects
--

ntnClfrBlockNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnClfrBlockId ,or a zero to indicate that 
        none exist."

    ::= { ntnClassifierClasses 9 }

ntnClfrBlockTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnClfrBlockEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The Classifier Block Table supports the 
        ability to group individual classifiers 
        into an unordered list, or block, of 
        classifiers. "

    ::= { ntnClassifierClasses 10 }

ntnClfrBlockEntry OBJECT-TYPE
    SYNTAX         NtnClfrBlockEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the Classifier Block Table 
        describes a single member of a group of 
        the classifiers. Each entry identifies 
        classification data, defined through the 
        Classifier Component Table (ntnClfrComponentTable). 
        Block members are considered unordered for 
        evaluation purposes and can be thought of 
        as being applied 'simultaneously'. All 
        block members must perform classification 
        based on the same set of data. Related 
        entries within this table are linked 
        through a common group identifier. This 
        identifier is used to reference the 
        classification block for a policy through 
        the QoS Policy Table (ntnQosPolicyTable)."

    INDEX { ntnClfrBlockId }
    ::= { ntnClfrBlockTable 1 }

NtnClfrBlockEntry ::= SEQUENCE {
        ntnClfrBlockId            IndexInteger,
        ntnClfrBlockNumber        Unsigned32,
        ntnClfrBlockClfrCompSetId Unsigned32,
        ntnClfrBlockMeter         IndexIntegerOrZero,
        ntnClfrBlockAction        IndexIntegerOrZero,
        ntnClfrBlockLabel         SnmpAdminString,
        ntnClfrBlockStorage       StorageType,
        ntnClfrBlockStatus        RowStatus,
        ntnClfrBlockSessionId     Unsigned32,
        ntnClfrBlockVersion       VersionIndicator,
        ntnClfrBlockPrecedence    Unsigned32
}

ntnClfrBlockId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the classifier 
        block entries. Managers can obtain new 
        index values for row creation in this 
        table by reading ntnClfrBlockNextFree.

        Version 1/2 attribute."

    ::= { ntnClfrBlockEntry 1 }

ntnClfrBlockNumber OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies a group of classification 
        entries. Entries in this table with the 
        same value for this attribute are considered 
        members of the same group (i.e., classifier 
        block). This block identifier is used to 
        reference this unordered collection of 
        classification data from other QoS tables, 
        including the QoS Policy Table 
        (ntnQosPolicyTable). Members of a specific 
        classification group may be deleted, even 
        if the group is referenced by an active 
        entry in another table, as long as at least 
        one member of the group is not deleted.

        Version 1/2 attribute."

    ::= { ntnClfrBlockEntry 2 }

ntnClfrBlockClfrCompSetId OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies a classifier component set in 
        the Classifier Component Table 
        (ntnClfrComponentTable) containing 
        classification data. Component entries must 
        exist prior to being referenced. It may be 
        permissible to create component table 
        entries and classifier block entries in 
        the same request. Referenced entries may 
        not be deleted while still referenced by 
        an active entry in this table. 

        Version 1/2 attribute."

    ::= { ntnClfrBlockEntry 3 }

ntnClfrBlockMeter OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS current
    DESCRIPTION
        "This attribute identifies the meter that is 
        associated with this classifier block. Meters 
        are specified in the ntnQosMeterTable and 
        associated tables. The corresponding instance in 
        the ntnQosMeter class (i.e., the class instance 
        where the ntnQosMeterId is equal to the value of 
        this object) must exist prior to being associated 
        with a block entry.

        A value of 0 indicates that no individual classifier
        metering is requested.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnClfrBlockEntry 4 }

ntnClfrBlockAction OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This attribute identifies the action that is to 
        be initiated for flows that are not being metered
        and that match the classification criteria specified
        through this classifier block. The value of this
        attribute will not be used (and should be set to
        0) when metering is requested. Under this scenario, 
        the in-profile and out-of-profile actions are 
        specified through the appropriate ntnQosMeterEntry.

        Actions must be defined in the ntnQosBaseActionTable 
        prior to being referenced by this attribute. A 
        non-zero value for this attribute must be provided 
        unless metering is requested (if action data is
        being specified per classifier).

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnClfrBlockEntry 5 }

ntnClfrBlockLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the classifier 
        group in a textual manner. All members of 
        the same group, as determined by the value 
        of the ntnClfrBlockNumber attribute, must 
        have the same label.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnClfrBlockEntry 6 }

ntnClfrBlockStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnClfrBlockEntry 7 }

ntnClfrBlockStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnClfrBlockEntry 8 }

ntnClfrBlockSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL  { 0 }
    ::= { ntnClfrBlockEntry 9 }

ntnClfrBlockVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnClfrBlockTable.

        Members of the same classifier block must 
        all have the same version information."

    DEFVAL  { version1 }
    ::= { ntnClfrBlockEntry 10 }

ntnClfrBlockPrecedence OBJECT-TYPE
    SYNTAX         Unsigned32 (0..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The relative order in which the classifier 
        sets associated with this block are applied, 
        with regard to other classifiers sets within
        the block. Higher numbers represent block
        members with higher precedence. Block members
        with higher precedence are applied before 
        members with lower precedence.

        Precedence values must be unique across members 
        of the same classifier block when block members
        are evaluated in a specific order. Precedence
        values must be the same across block members
        when they are evaluated simultaneously.

        Version 1/2 attribute."

    ::= { ntnClfrBlockEntry 11 }

--
-- Nortel Networks Classifier Block and Component support objects
--

ntnClfrComponentSetNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnClfrComponentSetId, or a zero to indicate 
        that none exist."

    ::= { ntnClassifierClasses 11 }

ntnClfrBlockNumberNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnClfrBlockNumber ,or a zero to indicate that 
        none exist."

    ::= { ntnClassifierClasses 12 }

--
-- Nortel Networks QoS Meter Classes
--

ntnQosMeterClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 6 }

--
-- Nortel Networks QoS Meter objects
--

ntnQosMeterNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosMeterId, or a zero to indicate that 
        none exist."

    ::= { ntnQosMeterClasses 1 }

ntnQosMeterTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosMeterEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table enumerates specific meters that 
        a system may use to police a stream of traffic.

        Specific meter details are to be found in 
        table entry referenced by ntnQosMeterSpecific."

    ::= { ntnQosMeterClasses 2 }

ntnQosMeterEntry OBJECT-TYPE
    SYNTAX         NtnQosMeterEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the meter table describes a 
        single conformance level of a meter."

    INDEX { ntnQosMeterId }
    ::= { ntnQosMeterTable 1 }

NtnQosMeterEntry ::= SEQUENCE {
        ntnQosMeterId                IndexInteger,
        ntnQosMeterSucceedNext       RowPointer,
        ntnQosMeterFailNext          RowPointer,
        ntnQosMeterSpecific          RowPointer,
        ntnQosMeterOutOfProfileStats IndexIntegerOrZero,
        ntnQosMeterLabel             SnmpAdminString,
        ntnQosMeterStorage           StorageType,
        ntnQosMeterStatus            RowStatus,
        ntnQosMeterSessionId         Unsigned32,
        ntnQosMeterVersion           VersionIndicator
}

ntnQosMeterId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the Meter entries. 
        Managers can obtain new index values for row 
        creation in this table by reading 
        ntnQosMeterNextFree.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 1 }

ntnQosMeterSucceedNext OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If the traffic being processed does conform, 
        based on the traffic profile associated with 
        this entry, this selects the next element to 
        handle traffic for this data path. This 
        RowPointer should point to an instance of 
        one of:

        ntnQosMeterEntry
        ntnQosBaseActionEntry

        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. 
        Referenced entries may not be deleted while 
        still referenced by an active entry in this 
        table.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 2 }

ntnQosMeterFailNext OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If the traffic being processed does not 
        conform, based on the traffic profile 
        associated with this entry, this selects 
        the next element to handle traffic for 
        this data path. This RowPointer should 
        point to an instance of one of:

        ntnQosMeterEntry
        ntnQosBaseActionEntry

        Entries in other tables must exist prior 
        to being referenced. It may be permissible 
        to create component table entries and the 
        entries being referenced in the same request. 
        Referenced entries may not be deleted while 
        still referenced by an active entry in this 
        table.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 3 }

ntnQosMeterSpecific OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This indicates the behavior of the meter 
        by pointing to an entry containing detailed 
        parameters. Note that entries in that specific 
        table must be managed explicitly.

        For example, ntnQosMeterSpecific may point to 
        an entry in ntnQosTBParamTable, which contains 
        an instance of a single set of Token Bucket 
        parameters.

        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. Referenced 
        entries may not be deleted while still 
        referenced by an active entry in this table.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 4 }

ntnQosMeterOutOfProfileStats OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies an entry in the Count Action Table
        (ntnQosCountActTable) that is used to accumulate
        statistics related to traffic processed based
        on this meter data that was deemed to be
        non-conformant (i.e., out-of-profile).

        If out-of-profile statistics are not wanted or
        are not available, this attribute will be set
        to 0.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 5 }

ntnQosMeterLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the meter 
        data in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnQosMeterEntry 6 }

ntnQosMeterStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnQosMeterEntry 7 }

ntnQosMeterStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 8 }

ntnQosMeterSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    ::= { ntnQosMeterEntry 9 }

ntnQosMeterVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnQosMeterTable."

    DEFVAL  { version1 }
    ::= { ntnQosMeterEntry 10 }

--
-- Nortel Networks QoS Token Bucket objects 
--

ntnQosTBParamNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosTBParamId, or a zero to indicate that 
        none exist."

    ::= { ntnQosMeterClasses 3 }

ntnQosTBParamTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosTBParamEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Entries in this table enumerate a set of 
        token bucket meter parameters that a system 
        may use to police a stream of traffic. Such 
        meters are modeled here as having a single 
        rate and a single burst size. Multiple 
        entries are used when multiple rates/burst 
        sizes are needed."

    ::= { ntnQosMeterClasses 4 }

ntnQosTBParamEntry OBJECT-TYPE
    SYNTAX         NtnQosTBParamEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry that describes a single set of 
        token bucket parameters."

    INDEX { ntnQosTBParamId }
    ::= { ntnQosTBParamTable 1 }

NtnQosTBParamEntry ::= SEQUENCE  {
        ntnQosTBParamId        IndexInteger,
        ntnQosTBParamType      AutonomousType,
        ntnQosTBParamRate      Unsigned32,
        ntnQosTBParamBurstSize BurstSize,
        ntnQosTBParamInterval  Unsigned32,
        ntnQosTBParamLabel     SnmpAdminString,
        ntnQosTBParamStorage   StorageType,
        ntnQosTBParamStatus    RowStatus,
        ntnQosTBParamSessionId Unsigned32,
        ntnQosTBParamVersion   VersionIndicator,
        ntnQosTBParamMinRate   Unsigned32
}

ntnQosTBParamId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the Token Bucket 
        Parameter entries. Managers can obtain new 
        index values for row creation in this table 
        by reading ntnQosTBParamNextFree.

        Version 1/2 attribute."

    ::= { ntnQosTBParamEntry 1 }

ntnQosTBParamType OBJECT-TYPE
    SYNTAX         AutonomousType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The Metering algorithm associated with 
        the Token Bucket parameters. The number 
        and type of algorithms supported is 
        implementation dependent. Potential 
        algorithms include:

        ntnQosTBParamSimpleTokenBucket
        ntnQosTBParamAvgRate
        ntnQosTBParamSrTCMBlind
        ntnQosTBParamSrTCMAware
        ntnQosTBParamTrTCMBlind
        ntnQosTBParamTrTCMAware
        ntnQosTBParamTswTCM

        An OBJECT-IDENTITY for each of these 
        algorithms is defined in this module. 
        Additional values may be specified as 
        needed.

        Version 1/2 attribute."

    DEFVAL { ntnQosTBParamSimpleTokenBucket }
    ::= { ntnQosTBParamEntry 2 }

ntnQosTBParamRate OBJECT-TYPE
    SYNTAX         Unsigned32  (1..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The token-bucket rate, in kilobits per 
        second (kbps). This attribute is used for:

        CIR for Simple Token Bucket
        CIR in RFC 2697 for srTCM
        CIR and PIR in RFC 2698 for trTCM
        CTR and PTR in RFC 2859 for TSWTCM
        AverageRate in RFC 3290.

        Version 1/2 attribute."

    ::= { ntnQosTBParamEntry 3 }

ntnQosTBParamBurstSize OBJECT-TYPE
    SYNTAX         BurstSize
    UNITS          "Bytes"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes in a single 
        transmission burst. This attribute is 
        used for:

        Token bucket size for Simple Token Bucket
        CBS and EBS in RFC 2697 for srTCM
        CBS and PBS in RFC 2698 for trTCM
        Burst Size in RFC 3290.

        Version 1/2 attribute."

    ::= { ntnQosTBParamEntry 4 }

ntnQosTBParamInterval OBJECT-TYPE
    SYNTAX         Unsigned32 (1..4294967295)
    UNITS          "microseconds"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The time interval used with the token 
        bucket. This attribute is used for: 

        Average Rate Meter (Informal DS Model section 5.2.1) - Delta
        Simple Token Bucket Meter (Informal DS Model 5.1) - time interval t
        RFC 2859 TSWTCM - AVG_INTERVAL
        RFC 2697 srTCM - token bucket update time interval
        RFC 2698 trTCM - token bucket update time interval.

        Version 1/2 attribute."

    ::= { ntnQosTBParamEntry 5 }

ntnQosTBParamLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the token bucket 
        data in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnQosTBParamEntry 6 }

ntnQosTBParamStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnQosTBParamEntry 7 }

ntnQosTBParamStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnQosTBParamEntry 8 }

ntnQosTBParamSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL  { 0 }
    ::= { ntnQosTBParamEntry 9 }

ntnQosTBParamVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnQosTBParamTable."

    DEFVAL  { version1 }
    ::= { ntnQosTBParamEntry 10 }

ntnQosTBParamMinRate OBJECT-TYPE
    SYNTAX         Unsigned32  (1..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum token-bucket rate, in kilobits 
        per second (kbps). 

        Version 2 attribute."

    ::= { ntnQosTBParamEntry 11 }

--
-- Object identifiers for use with the ntnQosTBParamType attribute
--

ntnQosTBMeters OBJECT IDENTIFIER ::= { ntnQosMeterClasses 5 }

ntnQosTBParamSimpleTokenBucket OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Two Parameter Token Bucket Meter as 
        described in the Informal Differentiated 
        Services Model section 5.2.3."

    ::= { ntnQosTBMeters 1 }

ntnQosTBParamAvgRate OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Average Rate Meter as described in the 
        Informal Differentiated Services Model 
        section 5.2.1."

    ::= { ntnQosTBMeters 2 }

ntnQosTBParamSrTCMBlind OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Single Rate Three Color Marker Metering 
        as defined by RFC 2697,in the `Color Blind' 
        mode as described by the RFC."

    REFERENCE "RFC 2697"
    ::= { ntnQosTBMeters 3 }

ntnQosTBParamSrTCMAware OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Single Rate Three Color Marker Metering as 
        defined by RFC 2697,in the `Color Aware' 
        mode as described by the RFC."

    REFERENCE "RFC 2697"
    ::= { ntnQosTBMeters 4 }

ntnQosTBParamTrTCMBlind OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Two Rate Three Color Marker Metering as 
        defined by RFC 2698, in the `Color Blind' 
        mode as described by the RFC."

    REFERENCE "RFC 2698"
    ::= { ntnQosTBMeters 5 }

ntnQosTBParamTrTCMAware OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Two Rate Three Color Marker Metering as 
        defined by RFC 2698, in the `Color Aware' 
        mode as described by the RFC."

    REFERENCE "RFC 2698"
    ::= { ntnQosTBMeters 6 }

ntnQosTBParamTswTCM OBJECT-IDENTITY
    STATUS         current
    DESCRIPTION
        "Time Sliding Window Three Color Marker 
        Metering as defined by RFC 2859."

    REFERENCE "RFC 2859"
    ::= { ntnQosTBMeters 7 }

--
-- Nortel Networks QoS Action Classes
--

ntnQosActionClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 7 }

--
-- Nortel Networks Base Action objects
--

ntnQosBaseActionNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosBaseActionId, or a zero to indicate 
        that none exist."

    ::= { ntnQosActionClasses 1 }

ntnQosBaseActionTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosBaseActionEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Contains the current set of configured 
        base actions. The actions are associated 
        with classifiers, meters and interfaces 
        through policies during operation."

    ::= { ntnQosActionClasses 2 }

ntnQosBaseActionEntry OBJECT-TYPE
    SYNTAX         NtnQosBaseActionEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "General action definitions. Each entry 
        specifies an instance of the ntnQosBaseAction 
        class which describes (potentially) several 
        distinct action attributes. Each action is 
        taken individually regarding the data in 
        question. Several actions can be taken for 
        a single frame.

        An instance of this class cannot be deleted 
        while it is being referenced by an entry in 
        another class."

    INDEX { ntnQosBaseActionId }
    ::= { ntnQosBaseActionTable 1 }

NtnQosBaseActionEntry ::= SEQUENCE {
        ntnQosBaseActionId                 IndexInteger,
        ntnQosBaseActionDrop               INTEGER,
        ntnQosBaseActionUpdateDscp         DscpUpdate,
        ntnQosBaseActionUpdateUserPriority INTEGER,
        ntnQosBaseActionSetDropPrecedence  INTEGER,
        ntnQosBaseActionCopyToCpu          TruthValue,
        ntnQosBaseActionMirrorFrame        TruthValue,
        ntnQosBaseActionExtension          RowPointer,
        ntnQosBaseActionLabel              SnmpAdminString,
        ntnQosBaseActionStorage            StorageType,
        ntnQosBaseActionStatus             RowStatus,
        ntnQosBaseActionSessionId          Unsigned32
}

ntnQosBaseActionId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the QoS Base 
        Action entries. Managers can obtain new 
        index values for row creation in this 
        table by reading ntnQosBaseActionNextFree. 
        Actions are associated with instances in 
        other classes (e.g., the QoS Policy class) 
        using this attribute."

    ::= { ntnQosBaseActionEntry 1 }

ntnQosBaseActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1), 
                       dontDrop(2), 
                       deferredPass(3)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet should dropped, switched
        (i.e., not dropped) or whether the decision
        to drop the packet should be deferred. 

        The value 'drop(1)', when specified, will 
        cause the packet being evaluated to be 
        dropped. A value of 'dontDrop(2)' indicates 
        that this packet should not be dropped.

        A value of 'deferredPass(3)' indicates that 
        no explicit assertion, related to whether or 
        not the packet should be discarded, is being 
        made. This option, when available, can be
        used to allow actions associated with lower
        precedence policies to determine whether a
        packet should be dropped or not. A 'drop(1)'
        or 'dontDrop(2)' in a lower precedence action
        is given precedence over a higher precedence
        'deferredPass(3)'. Support for this 
        enumeration is implementation dependent.

        Prior to discarding a packet, other actions 
        that have been specified should be performed 
        if they make protocol sense. For example, 
        requests for traffic mirroring (if such an 
        action is supported by a device) should be 
        honored. However, updating protocol header 
        values will typically not be necessary."

    DEFVAL { deferredPass }
    ::= { ntnQosBaseActionEntry 2 }

ntnQosBaseActionUpdateDscp OBJECT-TYPE
    SYNTAX         DscpUpdate
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified, 
        will cause the value contained in the 
        Differentiated Services (DS) field of an 
        associated IP datagram to be updated 
        with the value of this object."

    DEFVAL { -1 }
    ::= { ntnQosBaseActionEntry 3 }

ntnQosBaseActionUpdateUserPriority OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1), 
                       markAsPriority1(2), 
                       markAsPriority2(3), 
                       markAsPriority3(4), 
                       markAsPriority4(5), 
                       markAsPriority5(6), 
                       markAsPriority6(7), 
                       markAsPriority7(8), 
                       deriveFromIngressTosPrec(9),
                       deriveFromIngressDscp(10),
                       deriveFromEgressDscp(11),
                       ignore(12),
                       markAsPriorityCopy(13)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified, 
        will cause the value contained in the user 
        priority field of the 802.1Q frame to be 
        updated based on the value of this object. 

        Specifying a value equal to 'deriveFromIngressTosPrec(9)'
        means that the value for this attribute will be 
        assigned based on the value of the precedence bits
        in the IP Type-Of-Service (TOS) field, as defined
        in RFC 791. The eight precedence values, also 
        referred to as Class Selector (CS) values, have a 
        one-to-one correspondence with the eight 802.1p user 
        priority values.

        Specifying a value equal to 'deriveFromIngressDscp(10)'
        means that the value for this attribute will be 
        assigned based on DSCP-to-user priority map 
        information maintained in the system. The DSCP 
        value in received traffic will be used to determine 
        the user priority.

        Specifying a value equal to 'deriveFromEgressDscp(11)'
        means that the value for this attribute will be 
        assigned based on DSCP-to-user priority map 
        information maintained in the system. The DSCP 
        value specified for remarking in the 
        ntnQosBaseActionUpdateDscp attribute will be used 
        to determine the user priority.

        Specifying a value equal to 'ignore(12)' means
        that no action will be taken related to this 
        attribute.

        Specifying a value equal to 'markAsPriorityCopy(13)' 
        means that the priority is updated based on the 
        user priority field in the outer vlan tag. The priority
        copy functionality can be used for 802.1ad double tagged 
        traffic where the priority field in the service provider 
        vlan tag can be copied from the user priority in the 
        customer vlan tag."

    DEFVAL { ignore }
    ::= { ntnQosBaseActionEntry 4 }

ntnQosBaseActionSetDropPrecedence OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1), 
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified, 
        will cause the packet being evaluated to 
        be associated with the specified relative 
        drop precedence. The relative drop 
        precedence may be used to determine 
        traffic precedence relative to other 
        traffic being processed by the device 
        and other implementation specific  
        operations at the egress interface.

        A low value for the drop precedence equates 
        to the traffic receiving a higher priority 
        in terms of processing. In other words, 
        when congestion is encountered, packets 
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'."

    DEFVAL { lowDropPrec }
    ::= { ntnQosBaseActionEntry 5 }

ntnQosBaseActionCopyToCpu OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified, has 
        the ability to cause the packet being 
        evaluated to be sent to the CPU for further 
        processing. Extreme care should be taken 
        when setting this object to 'true(1)' since 
        this action may adversely affect resource 
        availability in the system impacting overall 
        system operation. 

        A value of 'false(2)' indicates that this 
        action will not be initiated.

        If this operation is requested and 'drop'
        has been specified, the packet will be 
        sent to the CPU and not forwarded by the 
        system. Specifying 'true(1)' when 'drop'
        has not been specified will cause a copy 
        of the packet to be sent to the CPU and 
        the packet itself will receive normal 
        forwarding treatment."

    DEFVAL { false }
    ::= { ntnQosBaseActionEntry 6 }

ntnQosBaseActionMirrorFrame OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified, will 
        cause the packet being evaluated to be sent 
        to a predefined egress port for transmission 
        in addition to the normal processing 
        associated with the packet.

        Specification of the egress port or ports 
        that will serve as the destination for 
        mirrored data is beyond the scope of this 
        document. Furthermore, note that data 
        mirroring can potentially consume substantial 
        resources at the egress. Over-subscription 
        issues should be considered prior to 
        specifying this action.

        A value of 'false(2)' indicates that this 
        action will not be initiated.

        If this operation is requested and 'drop'
        has been specified, the packet will be 
        mirrored to the specified port and not 
        forwarded by the system. Specifying 'true(1)' 
        when 'drop' has not been specified will 
        cause a copy of the packet to be mirrored 
        and the packet itself will receive normal 
        forwarding treatment."

    DEFVAL { false }
    ::= { ntnQosBaseActionEntry 7 }

ntnQosBaseActionExtension OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies an entry in an auxiliary action 
        table containing additional actions to be 
        performed on/applied to identified traffic. 
        Entries are referenced using a RowPointer 
        value specifying the RowStatus attribute 
        of the entry being identified. Entries in 
        other tables must exist prior to being 
        referenced. It may be permissible to create 
        base table entries and the entries being 
        referenced in the same request. Referenced 
        entries may not be deleted while still 
        referenced by an active entry in this table.

        A null value for this attribute (0.0) 
        indicates that no action extensions have 
        been specified."

    DEFVAL { zeroDotZero }
    ::= { ntnQosBaseActionEntry 8 }

ntnQosBaseActionLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the action entry 
        in a textual manner."

    DEFVAL { "" }
    ::= { ntnQosBaseActionEntry 9 }

ntnQosBaseActionStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosBaseActionEntry 10 }

ntnQosBaseActionStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosBaseActionEntry 11 }

ntnQosBaseActionSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data."

    ::= { ntnQosBaseActionEntry 12 }

--
-- Nortel Networks QoS Interface Action objects
--

ntnQosIfcActionNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosIfcActionId, or a zero to indicate 
        that none exist."

    ::= { ntnQosActionClasses 3 }

ntnQosIfcActionTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosIfcActionEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Contains the current set of configured 
        interface actions. The actions are associated 
        with classifiers, meters and interfaces 
        through policies during operation indirectly 
        through extensions of other action entries."

    ::= { ntnQosActionClasses 4 }

ntnQosIfcActionEntry OBJECT-TYPE
    SYNTAX         NtnQosIfcActionEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Interface action definitions. Each entry 
        specifies an instance of the ntnQosIfcAction 
        class which describes (potentially) several 
        distinct action attributes. Each action is 
        taken individually regarding the data in 
        question. Several actions can be taken for 
        a single frame.

        An instance of this class cannot be deleted 
        while it is being referenced by an entry in 
        another class."

    INDEX { ntnQosIfcActionId }
    ::= { ntnQosIfcActionTable 1 }

NtnQosIfcActionEntry ::= SEQUENCE {
        ntnQosIfcActionId                 IndexInteger,
        ntnQosIfcActionUpdateVlanId       Integer32,
        ntnQosIfcActionSetEgressMask      OCTET STRING,
        ntnQosIfcActionSetEgressUcastIfc  InterfaceIndexOrZero,
        ntnQosIfcActionSetEgressNUcastIfc InterfaceIndexOrZero,
        ntnQosIfcActionExtension          RowPointer,
        ntnQosIfcActionLabel              SnmpAdminString,
        ntnQosIfcActionStorage            StorageType,
        ntnQosIfcActionStatus             RowStatus,
        ntnQosIfcActionSessionId          Unsigned32
}

ntnQosIfcActionId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the QoS Interface 
        Action entries. Managers can obtain new index 
        values for row creation in this table by 
        reading ntnQosIfcActionNextFree. Actions are 
        associated with instances in other classes 
        (e.g., the QoS Base Action class) using this 
        attribute as a component in the identifying 
        RowPointer."

    ::= { ntnQosIfcActionEntry 1 }

ntnQosIfcActionUpdateVlanId OBJECT-TYPE
    SYNTAX         Integer32 (-1 | 1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified, will 
        cause the Vlan Id in the frame being processed 
        to be updated using the specified value. The 
        Vlan Id value will not be updated based on QoS 
        classification if the value of this attribute 
        equals -1."

    DEFVAL { -1 }
    ::= { ntnQosIfcActionEntry 2 }

ntnQosIfcActionSetEgressMask OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0 | 64))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified, will 
        cause the potential list of egress interfaces 
        for a given packet to be limited to those 
        interfaces that are included in the egress 
        interface mask specified by this attribute. 
        A packet will only be transmitted out 
        interfaces that are both identified through 
        this attribute AND through the normal 
        forwarding logic. Potential egress interfaces 
        are identified by setting the bit in the 
        egress mask that corresponds to the ifIndex 
        value associated with the interface. 

        Each bit of this bit mask corresponds to an 
        ifIndex value, with the most significant bit 
        of the i-th octet of this octet string 
        corresponding to the ((8*i) - 7)-th ifIndex, 
        and the least significant bit of the i-th 
        octet corresponding to the (8*i)-th ifIndex.

        A zero length octet string indicates that 
        this action component has not been set to an 
        appropriate value and should not be used for 
        action initiation. Egress interface restrictions 
        will not be updated based on QoS classification
        in this case."

    DEFVAL { "" }
    ::= { ntnQosIfcActionEntry 3 }

ntnQosIfcActionSetEgressUcastIfc OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute supports redirection 
        of normally-switched, known unicast packets to
        a specific interface. An egress interface is 
        identified for redirection by setting this 
        attribute to the logical ifIndex value 
        associated with the interface. Setting this 
        attribute to 0 indicates that redirection of 
        unicast traffic based on QoS classification 
        is not requested.

        Specifying the same ifIndex value for this
        object and the ntnQosIfcActionSetEgressNUcastIfc
        attribute causes all traffic to be redirected
        if it matches specified QoS classification
        criteria."

    DEFVAL { 0 }
    ::= { ntnQosIfcActionEntry 4 }

ntnQosIfcActionSetEgressNUcastIfc OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute supports redirection 
        of normally-switched non-unicast (includes
        broadcast, multicast and flooded/unknown
        unicast) packets to a specific interface. An 
        egress interface is identified for redirection 
        by setting this attribute to the logical 
        ifIndex value associated with the interface. 
        Setting this attribute to 0 indicates that 
        redirection of non-unicast traffic based on 
        QoS classification is not requested.

        Specifying the same ifIndex value for this
        object and the ntnQosIfcActionSetEgressUcastIfc
        attribute causes all traffic to be redirected
        if it matches specified QoS classification
        criteria."

    DEFVAL { 0 }
    ::= { ntnQosIfcActionEntry 5 }

ntnQosIfcActionExtension OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies an entry in an auxiliary action 
        table containing additional actions to be 
        performed on/applied to identified traffic. 
        Entries are referenced using a RowPointer 
        value specifying the RowStatus attribute 
        of the entry being identified. Entries in 
        other tables must exist prior to being 
        referenced. It may be permissible to create 
        referencing table entries and the entries 
        being referenced in the same request. 
        Referenced entries may not be deleted while 
        still referenced by an active entry in this 
        table.

        A null value for this attribute (0.0) indicates 
        that no action extensions have been specified."

    DEFVAL { zeroDotZero }
    ::= { ntnQosIfcActionEntry 6 }

ntnQosIfcActionLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the action entry 
        in a textual manner."

    DEFVAL { "" }
    ::= { ntnQosIfcActionEntry 7 }

ntnQosIfcActionStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosIfcActionEntry 8 }

ntnQosIfcActionStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosIfcActionEntry 9 }

ntnQosIfcActionSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data."

    ::= { ntnQosIfcActionEntry 10 }

--
-- Nortel Networks QoS Policy Classes
--

ntnQosPolicyClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 8 }

--
-- Nortel Networks QoS Policy object 
--

ntnQosPolicyNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosPolicyId, or a zero to indicate that 
        none exist."

    ::= { ntnQosPolicyClasses 1 }

ntnQosPolicyTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosPolicyEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A policy class that applies a set of 
        classifiers to interfaces specifying, for 
        each association, the precedence order of 
        the classifier with respect to other 
        classifiers applied to the same interface 
        and, for each policy, the action to take 
        for a packet that matches the classifiers 
        referenced by the policy. Interfaces are 
        specified abstractly in terms of interface 
        groups or roles.

        This class may reference individual classifiers 
        or blocks of classifiers. Classification data 
        is identified by its type (i.e., single 
        classifier or group of classifiers) and an 
        identifier based on the type. A policy is 
        formed by associating the classification data 
        with an interface group, actions to be carried 
        out based on classification and metering 
        criteria, if applicable."

    ::= { ntnQosPolicyClasses 2 }

ntnQosPolicyEntry OBJECT-TYPE
    SYNTAX         NtnQosPolicyEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosPolicy class. Instance 
        creation may be prohibited based on the status 
        of certain class attributes which must exist 
        prior to class instantiation."

    INDEX { ntnQosPolicyId }
    ::= { ntnQosPolicyTable 1 }

NtnQosPolicyEntry ::= SEQUENCE {
        ntnQosPolicyId              IndexInteger,
        ntnQosPolicyClassifierType  INTEGER,
        ntnQosPolicyClassifierId    Unsigned32,
        ntnQosPolicyInterfaceRoles  RoleCombination,
        ntnQosPolicyPrecedence      Unsigned32,
        ntnQosPolicyMeter           IndexIntegerOrZero,
        ntnQosPolicyAction          IndexIntegerOrZero,
        ntnQosPolicyNonMatchAction  IndexIntegerOrZero,
        ntnQosPolicyLabel           SnmpAdminString,
        ntnQosPolicyStorage         StorageType,
        ntnQosPolicyStatus          RowStatus,
        ntnQosPolicyStats           IndexIntegerOrZero,
        ntnQosPolicyStatsType       INTEGER,
        ntnQosPolicyInterfaceIndex  InterfaceIndexOrZero,
        ntnQosPolicySessionId       Unsigned32,
        ntnQosPolicyVersion         VersionIndicator
}

ntnQosPolicyId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the QoS Policy entries. 
        Managers can obtain new index values for row 
        creation in this table by reading ntnQosPolicyNextFree.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 1 }

ntnQosPolicyClassifierType OBJECT-TYPE
    SYNTAX         INTEGER  {
                       individualClfr(1),
                       blockOfClfrs(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of classification resources that are 
        being referenced by this QoS policy. This 
        classifier type indication, together with the 
        corresponding ntnQosPolicyClassifierId attribute, 
        uniquely identifies the classification data 
        associated with this entry.

        The value of this attribute dictates the 
        interpretation of the classifier Id in the 
        ntnQosPolicyClassifierId attribute. A value of 
        'individualClfr(1)' means the value references 
        entries in the Classifier Component Table 
        (ntnClfrComponentTable) using the component set 
        identifier. A value of 'blockOfClfrs(2)' means 
        the value reference entries in the Classifier 
        Block Table (ntnClfrBlockTable) using the 
        classification block number.

        Version 1/2 attribute."

    DEFVAL { individualClfr }
    ::= { ntnQosPolicyEntry 2 }

ntnQosPolicyClassifierId OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This attribute identifies the classification 
        data that is associated with this policy. It 
        identifies either an individual classifier or 
        a block of classifiers, based on the value of 
        the ntnQosPolicyClassifierType attribute. A 
        value of 'individualClfr(1)' means this value 
        references entries in the Classifier Component 
        Table (ntnClfrComponentTable) using the component 
        set identifier. A value of 'blockOfClfrs(2)' 
        means this value reference entries in the 
        Classifier Block Table (ntnClfrBlockTable) using 
        the classification block number

        Referenced classification data must be defined 
        prior to being referenced.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 3 }

ntnQosPolicyInterfaceRoles OBJECT-TYPE
    SYNTAX         RoleCombination
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The interfaces to which this policy applies, 
        specified in terms of a set of roles. The role 
        combination specified by this attribute must 
        exist in the ntnQosInterfaceTypeTable or the
        individual roles must exist in the 
        ntnQosInterfaceRoleTable prior to being associated 
        with an instance of this class.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 4 }

ntnQosPolicyPrecedence OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The relative order in which the classifier 
        elements associated with this policy are applied, 
        with regard to other classifiers applied to the 
        same group of interfaces in other policies. 
        Higher numbers represent policies with higher 
        precedence. Policies with higher precedence are 
        applied before policies with lower precedence.

        Precedence values must be unique across policies 
        that are associated with the same role combination.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 5 }

ntnQosPolicyMeter OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS current
    DESCRIPTION
        "This attribute identifies the meter that is 
        associated with this QoS Policy instance. Meters 
        are specified in the ntnQosMeterTable and 
        associated tables. The corresponding instance in 
        the ntnQosMeter class (i.e., the class instance 
        where the ntnQosMeterId is equal to the value of 
        this object) must exist prior to being associated 
        with a policy entry.

        A value of 0 indicates that no metering is 
        requested.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 6 }

ntnQosPolicyAction OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This attribute identifies the action that is to 
        be initiated for flows that are not being metered
        and that match the classification criteria specified
        via the classifier attributes. The value of this
        attribute will not be used (and should be set to
        0) when metering is requested. Under this scenario, 
        the in-profile and out-of-profile actions are 
        specified through the appropriate ntnQosMeterEntry.

        Actions must be defined in the ntnQosBaseActionTable 
        prior to being referenced by this attribute. A 
        non-zero value for this attribute must be provided 
        unless metering is requested.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosPolicyEntry 7 }

ntnQosPolicyNonMatchAction OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This attribute identifies the action that is to 
        be initiated for flows that do not match the 
        classification criteria being applied to the flow.  

        Actions must be defined in the ntnQosBaseActionTable 
        prior to being referenced by this attribute.

        Version 1 attribute."

    DEFVAL { 0 }
    ::= { ntnQosPolicyEntry 8 }

ntnQosPolicyLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the QoS policy 
        entry in a textual manner.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnQosPolicyEntry 9 } 

ntnQosPolicyStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnQosPolicyEntry 10 }

ntnQosPolicyStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnQosPolicyEntry 11 }

ntnQosPolicyStats OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies an entry in the Count Action Table 
        (ntnQosCountActTable) that is used to accumulate 
        statistics related to traffic processed based 
        on this policy data. If metering is specified,
        the statistics entry identified by this attribute
        counts traffic that was deemed to be conformant 
        (i.e., in-profile).

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosPolicyEntry 12 }

ntnQosPolicyStatsType OBJECT-TYPE
    SYNTAX         INTEGER  {
                       individualClfr(1),
                       aggregateClfr(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of statistics tracking used by this 
        QoS policy. The value of this attribute dictates 
        the amount of statistics tracking resources
        (i.e., counters) consumed by this policy. A 
        value of 'individualClfr(1)' means that separate
        counters will be allocated, space permitting, for
        each classifier referenced by the policy. A value
        of 'aggregateClfr(2)' means that a single counter
        will be used to accumulate the statistics data
        for all the classifiers referenced by the policy.

        The value of this attribute is only used when
        statistics tracking is enabled for the overall
        policy through the ntnQosPolicyStats attribute.

        Version 1/2 attribute."

    DEFVAL { aggregateClfr }
    ::= { ntnQosPolicyEntry 13 }

ntnQosPolicyInterfaceIndex OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An ifIndex value that is used to identify an
        interface to which the policy is to be applied.
        A policy is associated with an interface explicitly
        using this attribute or implicitly using a role
        combination through the ntnQosPolicyInterfaceRole
        attribute. An interface must be identified by one
        and only one of these attributes. This attribute
        may identify an interface that does not currently
        exist in the system as long as the specified 
        interface index represents a potentially valid
        system interface.

        Version 1/2 attribute." 

    ::= { ntnQosPolicyEntry 14 }

ntnQosPolicySessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data.

        Version 1/2 attribute."

    DEFVAL  { 0 }
    ::= { ntnQosPolicyEntry 15 }

ntnQosPolicyVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnQosPolicyTable."

    DEFVAL  { version1 }
    ::= { ntnQosPolicyEntry 16 }

--
-- Nortel Networks QoS Count Action objects
--

ntnQosCountActNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosCountActId, or a zero to indicate that 
        none exist."

    ::= { ntnQosPolicyClasses 3 }

ntnQosCountActTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosCountActEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains counters for all the 
        traffic passing through a processing element."

    ::= { ntnQosPolicyClasses 4 }

ntnQosCountActEntry OBJECT-TYPE
    SYNTAX         NtnQosCountActEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the count action table describes 
        a single set of traffic counters."

    INDEX { ntnQosCountActId }
    ::= { ntnQosCountActTable 1 }

NtnQosCountActEntry ::= SEQUENCE  {
        ntnQosCountActId        IndexInteger,
        ntnQosCountActOctets    Counter64,
        ntnQosCountActPkts      Counter64,
        ntnQosCountActStorage   StorageType,
        ntnQosCountActStatus    RowStatus,
        ntnQosCountActSessionId Unsigned32
}

ntnQosCountActId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the Count Action 
        entries. Managers can obtain new index 
        values for row creation in this table by 
        reading ntnQosCountActNextFree."

    ::= { ntnQosCountActEntry 1 }

ntnQosCountActOctets OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of octets processed by the 
        associated data path element (e.g., policy,
        meter)."

    ::= { ntnQosCountActEntry 2 }

ntnQosCountActPkts OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of packets processed by the 
        associated data path element (e.g., policy,
        meter)."

    ::= { ntnQosCountActEntry 3 }

ntnQosCountActStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosCountActEntry 4 }

ntnQosCountActStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosCountActEntry 5 }

ntnQosCountActSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A session identifier used to reference transitory
        (volatile) data."

    ::= { ntnQosCountActEntry 6 }

--
-- Nortel Networks QoS Filter Statistics objects
--

ntnQosFilterStatsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosFilterStatsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains counters for all the 
        traffic passing through a processing element 
        at the policy/filter level."

    ::= { ntnQosPolicyClasses 5 }

ntnQosFilterStatsEntry OBJECT-TYPE
    SYNTAX         NtnQosFilterStatsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the filter statistics table 
        describes a single set of traffic counters 
        for a specific policy/filter/interface
        combination."

    INDEX { ntnQosFilterStatsPolicyId, ntnQosFilterStatsFilterId, ntnQosFilterStatsInterfaceId }
    ::= { ntnQosFilterStatsTable 1 }

NtnQosFilterStatsEntry ::= SEQUENCE  {
        ntnQosFilterStatsPolicyId           IndexInteger,
        ntnQosFilterStatsFilterId           IndexIntegerOrZero,
        ntnQosFilterStatsInterfaceId        InterfaceIndex,
        ntnQosFilterStatsInProfileOctets    Counter64,
        ntnQosFilterStatsInProfilePkts      Counter64,
        ntnQosFilterStatsOutOfProfileOctets Counter64,
        ntnQosFilterStatsOutOfProfilePkts   Counter64,
        ntnQosFilterStatsStorage            StorageType,
        ntnQosFilterStatsStatus             RowStatus
}

ntnQosFilterStatsPolicyId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the 
        policy associated with this Filter Statistics 
        entry. This attribute has the same value as 
        the ntnQosPolicyId attribute with which it 
        is associated."

    ::= { ntnQosFilterStatsEntry 1 }

ntnQosFilterStatsFilterId OBJECT-TYPE
    SYNTAX         IndexIntegerOrZero
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the filter 
        instance within a specific policy (as identified 
        by the ntnQosFilterStatsPolicyId attribute) that 
        is associated with this Filter Statistics entry.  

        If the identified policy references an individual 
        classifier (as specified by the QoS Policy Table 
        ntnQosPolicyClassifierType attribute), the value of 
        this attribute will be the referenced classifier 
        component set ID. If a block of classifiers is 
        specified, the value of this attribute will be 
        the classifier component set identifier referenced 
        by the block member.

        A special value (0) for this attribute indicates
        that aggregate, not individual, statistics are 
        being maintained for the referenced policy. In
        this case, the filter ID of 0 should be thought
        of as a wildcard identifying all the classifiers
        associated with the policy."

    ::= { ntnQosFilterStatsEntry 2 }

ntnQosFilterStatsInterfaceId OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the interface
        index referenced by the specific policy (as identified 
        by the ntnQosFilterStatsPolicyId attribute) that 
        is associated with this Filter Statistics entry."

    ::= { ntnQosFilterStatsEntry 3 }

ntnQosFilterStatsInProfileOctets OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of octets considered to be in-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterStatsEntry 4 }

ntnQosFilterStatsInProfilePkts OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of packets considered to be in-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterStatsEntry 5 }

ntnQosFilterStatsOutOfProfileOctets OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of octets considered to be out-of-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterStatsEntry 6 }

ntnQosFilterStatsOutOfProfilePkts OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of packets considered to be out-of-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterStatsEntry 7 }

ntnQosFilterStatsStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosFilterStatsEntry 8 }

ntnQosFilterStatsStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosFilterStatsEntry 9 }

--
-- Nortel Networks QoS Policy Diagnostics objects 
--

ntnQosPolicyDiagsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosPolicyDiagsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains attributes used to track 
        the current level of hardware resource consumption 
        related to installed policy data on an interface."

    ::= { ntnQosPolicyClasses 6 }

ntnQosPolicyDiagsEntry OBJECT-TYPE
    SYNTAX         NtnQosPolicyDiagsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the QoS policy diagnostics table 
        describes a single set of resource utilization 
        data, related to installed policy data and
        non-policy data that still consumes policy
        resources, for a given interface."

    AUGMENTS { ntnQosIfAssignmentEntry }
    ::= { ntnQosPolicyDiagsTable 1 }

NtnQosPolicyDiagsEntry ::= SEQUENCE  {
        ntnQosPolicyDiagsMasksConsumed         Unsigned32,
        ntnQosPolicyDiagsFiltersConsumed       Unsigned32,
        ntnQosPolicyDiagsMetersConsumed        Unsigned32,
        ntnQosPolicyDiagsNonQosMasksConsumed   Unsigned32,
        ntnQosPolicyDiagsNonQosFiltersConsumed Unsigned32,
        ntnQosPolicyDiagsNonQosMetersConsumed  Unsigned32,
        ntnQosPolicyDiagsCountersConsumed      Unsigned32,
        ntnQosPolicyDiagsTotalMasksAvail       Unsigned32,
        ntnQosPolicyDiagsTotalFiltersAvail     Unsigned32,
        ntnQosPolicyDiagsTotalMetersAvail      Unsigned32,
        ntnQosPolicyDiagsTotalCountersAvail    Unsigned32
}

ntnQosPolicyDiagsMasksConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of classification 
        masks in-use, due to installed policy and 
        filter data, for a given interface."

    ::= { ntnQosPolicyDiagsEntry 1 }

ntnQosPolicyDiagsFiltersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of filters (i.e., 
        rules) in-use, due to installed filter data, 
        for a given interface."

    ::= { ntnQosPolicyDiagsEntry 2 }

ntnQosPolicyDiagsMetersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of meters in-use, 
        due to installed policy data, for a given 
        interface."

    ::= { ntnQosPolicyDiagsEntry 3 }

ntnQosPolicyDiagsNonQosMasksConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of classification 
        masks in-use, not due to installed policy and 
        filter data, for a given interface."

    ::= { ntnQosPolicyDiagsEntry 4 }

ntnQosPolicyDiagsNonQosFiltersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of filters (i.e., 
        rules) in-use, not due to installed filter 
        data, for a given interface."

    ::= { ntnQosPolicyDiagsEntry 5 }

ntnQosPolicyDiagsNonQosMetersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of meters in-use, 
        not due to installed policy data, for a given 
        interface."

    ::= { ntnQosPolicyDiagsEntry 6 }

ntnQosPolicyDiagsCountersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of counters in-use 
        for a given interface."

    ::= { ntnQosPolicyDiagsEntry 7 }

ntnQosPolicyDiagsTotalMasksAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of classification 
        masks available for a given interface."

    ::= { ntnQosPolicyDiagsEntry 8 }

ntnQosPolicyDiagsTotalFiltersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of filters (i.e., 
        rules) available for a given interface."

    ::= { ntnQosPolicyDiagsEntry 9 }

ntnQosPolicyDiagsTotalMetersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of meters available
        for a given interface."

    ::= { ntnQosPolicyDiagsEntry 10 }

ntnQosPolicyDiagsTotalCountersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of counters available
        for a given interface."

    ::= { ntnQosPolicyDiagsEntry 11 }

ntnQosPolicyPrecResDiagsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosPolicyPrecResDiagsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains attributes used to track 
        the current level of hardware resource consumption 
        related to installed policy data for a given
        precedence level and interface when resources
        are centrally allocated."

    ::= { ntnQosPolicyClasses 7 }

ntnQosPolicyPrecResDiagsEntry OBJECT-TYPE
    SYNTAX         NtnQosPolicyPrecResDiagsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the QoS policy precedence resource
        diagnostics table describes a single set of resource 
        utilization data, related to installed policy data 
        and non-policy data that still consumes policy 
        resources, for a given precedence level and
        interface."

    INDEX { ntnQosPolicyPrecResDiagsPrec, ntnQosPolicyPrecResDiagsInterface }
    ::= { ntnQosPolicyPrecResDiagsTable 1 }

NtnQosPolicyPrecResDiagsEntry ::= SEQUENCE  {
        ntnQosPolicyPrecResDiagsPrec                  Unsigned32,
        ntnQosPolicyPrecResDiagsInterface             InterfaceIndex,
        ntnQosPolicyPrecResDiagsKeysConsumed          Unsigned32,
        ntnQosPolicyPrecResDiagsFiltersConsumed       Unsigned32,
        ntnQosPolicyPrecResDiagsMetersConsumed        Unsigned32,
        ntnQosPolicyPrecResDiagsNonQosKeysConsumed    Unsigned32,
        ntnQosPolicyPrecResDiagsNonQosFiltersConsumed Unsigned32,
        ntnQosPolicyPrecResDiagsNonQosMetersConsumed  Unsigned32,
        ntnQosPolicyPrecResDiagsCountersConsumed      Unsigned32,
        ntnQosPolicyPrecResDiagsTotalKeysAvail        Unsigned32,
        ntnQosPolicyPrecResDiagsTotalFiltersAvail     Unsigned32,
        ntnQosPolicyPrecResDiagsTotalMetersAvail      Unsigned32,
        ntnQosPolicyPrecResDiagsTotalCountersAvail    Unsigned32,
        ntnQosPolicyPrecResDiagsRangeChkElemsConsumed Unsigned32,
        ntnQosPolicyPrecResDiagsApplicationIdUsed     Unsigned32,
        ntnQosPolicyPrecResDiagsApplicationNameUsed   SnmpAdminString
}

ntnQosPolicyPrecResDiagsPrec OBJECT-TYPE
    SYNTAX         Unsigned32 (1..65535)
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The precedence value for which resource data
        is being returned. In a centralized architecture,
        a specific precedence value is typically associated
        with a bank or slice of filter (rule), meter and
        counter resources."

    ::= { ntnQosPolicyPrecResDiagsEntry 1 }

ntnQosPolicyPrecResDiagsInterface OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosPolicyPrecResDiagsEntry. The 
        ifIndex value of this attribute corresponds to the 
        ifTable entry with the same ifIndex value.

        When resources are centrally allocated and not
        port-based, a series of interfaces is typically
        associated with a bank or slice of filter (rule),
        meter and counter resources. Interfaces associated
        with the same slice will have the same values for
        the returned resource usage data."

    ::= { ntnQosPolicyPrecResDiagsEntry 2 }

ntnQosPolicyPrecResDiagsKeysConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of classification 
        keys in-use, due to installed policy and 
        filter data, for a given precedence level and
        interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 3 }

ntnQosPolicyPrecResDiagsFiltersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of filters (i.e., 
        rules) in-use, due to installed filter data, 
        for a given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 4 }

ntnQosPolicyPrecResDiagsMetersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of meters in-use, 
        due to installed policy data, for a given 
        precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 5 }

ntnQosPolicyPrecResDiagsNonQosKeysConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of classification 
        keys in-use, not due to installed policy and 
        filter data, for a given precedence level and
        interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 6 }

ntnQosPolicyPrecResDiagsNonQosFiltersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of filters (i.e., 
        rules) in-use, not due to installed filter 
        data, for a given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 7 }

ntnQosPolicyPrecResDiagsNonQosMetersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of meters in-use, 
        not due to installed policy data, for a given 
        precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 8 }

ntnQosPolicyPrecResDiagsCountersConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the current number of counters in-use 
        for a given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 9 }

ntnQosPolicyPrecResDiagsTotalKeysAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of classification 
        keys available for a given precedence level
        and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 10 }

ntnQosPolicyPrecResDiagsTotalFiltersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of filters (i.e., 
        rules) available for a given precedence level
        and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 11 }

ntnQosPolicyPrecResDiagsTotalMetersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of meters available
        for a given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 12 }

ntnQosPolicyPrecResDiagsTotalCountersAvail OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the total number of counters available
        for a given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 13 }

ntnQosPolicyPrecResDiagsRangeChkElemsConsumed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the number of range check elements currently
        consumed for a given precedence level and interface.
        Note that range check resources may be centrally
        allocated (not interface-based) meaning that the
        resource usage data may be the same across the
        precedence levels/interfaces that share the resource."

    ::= { ntnQosPolicyPrecResDiagsEntry 14 }

ntnQosPolicyPrecResDiagsApplicationIdUsed OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Tracks the Id of application in-use for a
         given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 15 }

ntnQosPolicyPrecResDiagsApplicationNameUsed OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The name of application in-use for a
         given precedence level and interface."

    ::= { ntnQosPolicyPrecResDiagsEntry 16 }

--
-- Nortel Networks QoS Interface Classes
--

ntnQosInterfaceClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 9 }

--
-- Nortel Networks QoS Interface Assignment Objects
--

ntnQosIfAssignmentTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosIfAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Contains interface index to interface role
        combination associations."

    ::= { ntnQosInterfaceClasses 1 }

ntnQosIfAssignmentEntry OBJECT-TYPE
    SYNTAX         NtnQosIfAssignmentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosIfAssignmentTable.

        Each row identifies an interface value that
        corresponds to an entry in the ifTable (MIB-II) 
        and a role combination with which the interface 
        is associated."

    INDEX { ntnQosIfAssignmentIfIndex }
    ::= { ntnQosIfAssignmentTable 1 }

NtnQosIfAssignmentEntry ::= SEQUENCE {
        ntnQosIfAssignmentIfIndex         InterfaceIndex,
        ntnQosIfAssignmentRoleCombination RoleCombination,
        ntnQosIfAssignmentQueueSet        Integer32,
        ntnQosIfAssignmentStorage         StorageType,
        ntnQosIfAssignmentStatus          RowStatus,
        ntnQosIfAssignmentCapabilities    BITS
}

ntnQosIfAssignmentIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosIfAssignmentEntry. The ifIndex
        value of this attribute must correspond to the
        ifTable entry with the same ifIndex value."

    ::= { ntnQosIfAssignmentEntry 1 }

ntnQosIfAssignmentRoleCombination OBJECT-TYPE
    SYNTAX         RoleCombination
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The role combination that is associated with the
        interface with an ifIndex value that is equal to
        ntnQosIfAssignmentIfIndex."

    ::= { ntnQosIfAssignmentEntry 2 }

ntnQosIfAssignmentQueueSet OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The queue set associated with this interface. A
        queue set must be defined in the ntnQosIfQueueTable
        prior to being referenced by this attribute."

    ::= { ntnQosIfAssignmentEntry 3 }

ntnQosIfAssignmentStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION 
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosIfAssignmentStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosIfAssignmentEntry 4 }

ntnQosIfAssignmentStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosIfAssignmentEntry 5 }

ntnQosIfAssignmentCapabilities OBJECT-TYPE
    SYNTAX         BITS {
                        other(0),

                        -- Classification support
                        inputIpClassification(1),
                        outputIpClassification(2),
                        input802Classification(3),
                        output802Classification(4),
                        inputSystemClassification(5),
                        outputSystemClassification(6),

                        -- Metering support
                        meteringRate1023(7),
                        meteringRate16383(8),
                        meteringBucket512K(9),
                        meteringBucket8192K(10),
                        meteringGranularity64Kbps(11),
                        meteringGranularity1000Kbps(12),

                        -- Shaping support
                        shapingRate1023(13),
                        shapingRate16383(14),
                        shapingBucket512K(15),
                        shapingBucket8192K(16),
                        shapingGranularity64Kbps(17),
                        shapingGranularity1000Kbps(18),

                        -- Action support
                        actionIPv6Remarking(19),

                        -- Metering support
                        meteringTypeSimpleTb(20),
                        meteringTypeSrTcm(21),
                        meteringTypeTrTcm(22),

                        -- Shaping support
                        shapingTypeInterface(23),
                        shapingTypeCos(24),

                        -- Version support
                        version1Caps(25),
                        version2Caps(26),

                        -- Metering/Shaping support
                        meteringRate32767(27),
                        shapingRate32767(28),
                        meteringBucket16384K(29),
                        shapingBucket16384K(30),

                        -- Application support
                        dappSupport(31)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "An enumeration of interface capabilities.  Used by the
        PDP or network manager to select which policies and 
        configuration it should push to the PEP. Also used to
        derive the capabilities that are common across several
        interfaces."

    ::= { ntnQosIfAssignmentEntry 6 }

--
-- Nortel Networks QoS Interface Queue Table
--

ntnQosIfQueueTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosIfQueueEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Contains information about the individual queues that
        comprise a queue set implemented on the device."

    ::= { ntnQosInterfaceClasses 2 }

ntnQosIfQueueEntry OBJECT-TYPE
    SYNTAX         NtnQosIfQueueEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosIfQueueTable.

        Each row identifies a specific queue within a given 
        queue set and contains detailed information about the 
        queue. Queues are associated with a given set through 
        this table and a queue set is associated with an 
        interface through the ntnQosIfAssignmentTable."

    INDEX { ntnQosIfQueueId }
    ::= { ntnQosIfQueueTable 1 }

NtnQosIfQueueEntry ::= SEQUENCE {
        ntnQosIfQueueId                  IndexInteger,
        ntnQosIfQueueSetId               Integer32,
        ntnQosIfQueueIndex               Integer32,
        ntnQosIfQueueDiscipline          INTEGER,
        ntnQosIfQueueDrainSize           Unsigned32,
        ntnQosIfQueueAbsBandwidth        Unsigned32,
        ntnQosIfQueueBandwidthAllocation INTEGER,
        ntnQosIfQueueServiceOrder        Integer32,
        ntnQosIfQueueSize                Unsigned32,
        ntnQosIfQueueStorage             StorageType,
        ntnQosIfQueueStatus              RowStatus
}

ntnQosIfQueueId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        ntnQosIfQueueTable."

    ::= { ntnQosIfQueueEntry 1 }

ntnQosIfQueueSetId OBJECT-TYPE
    SYNTAX         Integer32 (1..65535)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An index that uniquely identifies a specific queue set. The 
        queue set that is identified with this value is associated 
        with an interface through the ntnQosIfAssignmentQueueSet 
        object in the ntnQosIfAssignmentTable. The individual queues 
        that are members of this set all have the same value for 
        this attribute (i.e., they have the same set ID)."

    ::= { ntnQosIfQueueEntry 2 }

ntnQosIfQueueIndex OBJECT-TYPE
    SYNTAX         Integer32 (1..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An arbitrary index that uniquely identifies a specific
        queue within a set of queues that is identified by the
        ntnQosIfQueueSetId value."

    ::= { ntnQosIfQueueEntry 3 }

ntnQosIfQueueDiscipline OBJECT-TYPE
    SYNTAX         INTEGER {
                       fifo(1),   -- First In First Out queuing
                       pq(2),     -- Priority Queuing
                       fq(3),     -- Fair Queuing
                       wfq(4),    -- Weighted Fair Queuing
                       wrr(5)     -- Weighted Round Robin
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object identifies the queuing discipline that is
        associated with the specified queue. 

        A value of fifo(1) indicates that the queue is serviced
        on a first-in-first-out (FIFO) basis. This discipline is
        generally employed when only a single queue is available
        for a given interface.

        A value of pq(2) indicates that the queue is serviced
        using a priority queuing discipline. This technique is
        used when several queues are available for a given
        interface. Each queue is assigned a priority and queues
        are serviced in order of priority. Higher priority queues
        are completely drained before lower priority queues are
        serviced.

        A value of fq(3) indicates that the queue is serviced
        using a fair queuing discipline. This technique is used
        when several queues are available for a given interface.
        Each queue is treated equally and is serviced in a
        round-robin fashion.

        A value of wfq(4) indicates that the queue is serviced
        using a weighted fair queuing discipline. This technique is
        used when several queues are available for a given interface.
        Each queue is serviced based on queue weights which determine
        the scheduling and frequency of queue servicing. Queues that
        are assigned a greater weight are implicitly provided with
        more bandwidth.

        A value of wrr(5) indicates that the queue is serviced
        using a weighted round robin discipline. This technique is
        used when several queues are available for a given interface.
        Each queue is serviced based on queue weights which determine
        the scheduling and frequency of queue servicing. Queues that
        are assigned a greater weight are implicitly provided with
        more bandwidth.

        Note that the processing disciplines for all of the queues
        in a given set must be considered when trying to establish
        a processing profile for a given interface."

    ::= { ntnQosIfQueueEntry 4 }

ntnQosIfQueueDrainSize OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes that may be drained from the
        queue in one cycle.  The percentage of the interface
        bandwidth allocated to this queue can be calculated from
        this attribute and the sum of the drain sizes of all the
        queues in a specific queue cluster in a queue set.

        This attribute represents the relative bandwidth that is
        available to a given queue with respect to other queues with
        which it is associated. The absolute bandwidth that is
        available to a given queue is specified by the attribute
        ntnQosIfQueueAbsBandwidth.  Which of these two applies is
        specified by the attribute ntnQosIfQueueBandwidthAllocation."

    ::= { ntnQosIfQueueEntry 5 }

ntnQosIfQueueAbsBandwidth OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum interface bandwidth that is available for
        consumption when servicing this queue. This bandwidth is
        specified in terms of kilobits per second.

        This attribute represents the absolute bandwidth that is
        available to a given queue. The relative bandwidth that is
        available to a given queue, with respect to other queues with
        which it is associated, is specified by the attribute
        ntnQosIfQueueDrainSize.  Which of these two applies is specified
        by the attribute ntnQosIfQueueBandwidthAllocation."

    ::= { ntnQosIfQueueEntry 6 }

ntnQosIfQueueBandwidthAllocation OBJECT-TYPE
    SYNTAX         INTEGER {
                        absolute(1),  --use ntnQosIfQueueAbsBandwidth
                        relative(2)   --use ntnQosIfQueueDrainSize
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This attribute specifies whether to configure the queue for
        an absolute bandwidth limit or one that is relative to other
        queues of the interface. i.e., whether to configure the queue
        using ntnQosIfQueueAbsBandwidth or ntnQosIfQueueDrainSize."

    ::= { ntnQosIfQueueEntry 7 }

ntnQosIfQueueServiceOrder OBJECT-TYPE
    SYNTAX         Integer32 (1..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object is used to provide an additional level of
        priority that is required for certain queuing disciplines
        and when the different queues that comprise a queue set
        are serviced using a mix of queuing disciplines. This
        object can be used to specify, for example, the order in
        which queues will be serviced when priority queuing is
        used. It also supports the ability to describe the
        servicing hierarchy when a hybrid queuing scheme, such
        as priority queuing coupled with weighted fair queuing,
        is used.

        Queue service priority is assigned such that a lower
        service order value indicates a higher priority. For
        example, a priority queue with a value of 1 will be
        serviced (i.e., drained) before another priority queue
        with a service order value of 2.

        Note that multiple queues that are logically associated,
        based on the queuing discipline that is being employed,
        will be assigned the same service order value.  Under
        this scenario, other parameters that are related to the
        queuing discipline determine the order of queue servicing
        (e.g., queue drain size is used for 'wfq'). 

        For example, an interface that is associated with a queue
        set supporting two priority queues and three queues that 
        are serviced using WFQ would be modeled as follows:

          Q Index  Q Discipline  Q Drain Size  Q Service Order
             22         pq(1)         -              1
             23         pq(1)         -              2
             24        wfq(3)        500             3
             25        wfq(3)        350             3
             26        wfq(3)        150             3

        The queue set presented in this example would service
        all queued traffic in queue 22 first, followed by all of
        the queued traffic in queue 23. Next the queued traffic
        in queues 24 through 26 would be serviced in a round
        robin fashion with queue 24 receiving 50% of the available
        bandwidth, queue 25 receiving 35% of the available
        bandwidth and queue 26 receiving 15% of the available
        bandwidth. This example is presented for expository 
        purposes and has been simplified accordingly.

        Note that, in this example, queues 24, 25 and 26 form a
        queue cluster. Members of a queue cluster are all assigned
        the same ntnQosIfQueueServiceOrder as there are tightly
        coupled. The ntnQosIfQueueDrainSize attribute is used to 
        determine the additional processing characteristics of 
        the individual queues in a cluster."

    ::= { ntnQosIfQueueEntry 8 }

ntnQosIfQueueSize OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The size of the queue in bytes.  Some devices set queue size
        in terms of packets.  These devices must calculate the queue
        size in packets by assuming an average packet size suitable
        for the particular interface.

        Some devices have a fixed size buffer to be shared among all
        queues.  These devices must allocate a fraction of the
        total buffer space to this queue calculated as the the ratio
        of the queue size to the sum of the queue sizes for the
        interface."

    ::= { ntnQosIfQueueEntry 9 }

ntnQosIfQueueStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosIfQueueStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosIfQueueEntry 10 }

ntnQosIfQueueStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosIfQueueEntry 11 }

--
-- Nortel Networks Interface Role Table
--

ntnQosInterfaceRoleNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosInterfaceRoleId, or a zero to indicate 
        that none exist."

    ::= { ntnQosInterfaceClasses 3 }

ntnQosInterfaceRoleTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosInterfaceRoleEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Interface role definitions. This class describes the
        interface roles that exist on the device. An interface
        role is denoted by its designated role identifier."

    ::= { ntnQosInterfaceClasses 4 }

ntnQosInterfaceRoleEntry OBJECT-TYPE
    SYNTAX         NtnQosInterfaceRoleEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the characteristics
        of an interface role. Interface role characteristics
        include a role identifier, an interface class designation 
        and a filter capabilities attribute."

    INDEX { ntnQosInterfaceRoleId }
    ::= { ntnQosInterfaceRoleTable 1 }

NtnQosInterfaceRoleEntry ::= SEQUENCE {
        ntnQosInterfaceRoleId                IndexInteger,
        ntnQosInterfaceRoleRole              Role,
        ntnQosInterfaceRoleIfClass           INTEGER,
        ntnQosInterfaceRoleCapabilities      BITS,
        ntnQosInterfaceRoleStorageType       StorageType,
        ntnQosInterfaceRoleStatus            RowStatus,
        ntnQosInterfaceRoleStatsTrackingType INTEGER
}

ntnQosInterfaceRoleId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies a
        instance of the ntnQosInterfaceRole class. Class instances
        may not be contiguous."

    ::= { ntnQosInterfaceRoleEntry 1 }

ntnQosInterfaceRoleRole OBJECT-TYPE
    SYNTAX         Role
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The role that is used to identify interfaces
        with the characteristics specified by the attributes
        of this class instance. Interface role combination
        identifiers are used within a number of classes to
        logically identify a physical set of interfaces to 
        which policy rules and actions are applied. Role
        combinations are comprised of one or more roles defined
        in this table. Role identifiers must exist in this 
        table prior to being referenced in other class instances."

    ::= { ntnQosInterfaceRoleEntry 2 }

ntnQosInterfaceRoleIfClass OBJECT-TYPE
    SYNTAX         INTEGER {
                       trusted(1),  
                       nonTrusted(2),
                       unrestricted(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A value describing the overall classification of
        traffic received on interfaces with the given role.
        Traffic received on trusted interfaces may be 
        processed differently and be subject to different 
        restrictions that traffic received on non-trusted 
        interfaces. The treatment of traffic based on interface 
        class is implementation dependent."

    ::= { ntnQosInterfaceRoleEntry 3 }

ntnQosInterfaceRoleCapabilities OBJECT-TYPE
    SYNTAX         BITS {
                        other(0),

                        -- Classification support
                        inputIpClassification(1),
                        outputIpClassification(2),
                        input802Classification(3),
                        output802Classification(4),
                        inputSystemClassification(5),
                        outputSystemClassification(6),

                        -- Metering support
                        meteringRate1023(7),
                        meteringRate16383(8),
                        meteringBucket512K(9),
                        meteringBucket8192K(10),
                        meteringGranularity64Kbps(11),
                        meteringGranularity1000Kbps(12),

                        -- Shaping support
                        shapingRate1023(13),
                        shapingRate16383(14),
                        shapingBucket512K(15),
                        shapingBucket8192K(16),
                        shapingGranularity64Kbps(17),
                        shapingGranularity1000Kbps(18),

                        -- Action support
                        actionIPv6Remarking(19),

                        -- Metering support
                        meteringTypeSimpleTb(20),
                        meteringTypeSrTcm(21),
                        meteringTypeTrTcm(22),

                        -- Shaping support
                        shapingTypeInterface(23),
                        shapingTypeCos(24),

                        -- Version support
                        version1Caps(25),
                        version2Caps(26),

                        -- Metering/Shaping support
                        meteringRate32767(27),
                        shapingRate32767(28),
                        meteringBucket16384K(29),
                        shapingBucket16384K(30)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An enumeration of interface capabilities.  Used by the
        PDP or network manager to select which policies and 
        configuration it should push to the PEP."

    ::= { ntnQosInterfaceRoleEntry 4 }

ntnQosInterfaceRoleStorageType OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosInterfaceRoleStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosInterfaceRoleEntry 5 }

ntnQosInterfaceRoleStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosInterfaceRoleEntry 6 }

ntnQosInterfaceRoleStatsTrackingType OBJECT-TYPE
    SYNTAX         INTEGER {
                        disabled(1),
                        individual(2),
                        aggregate(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "The value of this attribute determines if
            statistics tracking is enabled for system-level
            policies associated with the designated role.
            The ntnQosConfigTrackStatistics attribute value
            at the time the role is created provides the
            default value for this object."
 
    ::= { ntnQosInterfaceRoleEntry 7 }

--
-- Nortel Networks User Role Table
--

ntnQosUserRoleTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosUserRoleEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "User role definitions. This class describes the
        user roles that exist on the device. User roles
        associate a user and role with a single interface."

    ::= { ntnQosInterfaceClasses 5 }

ntnQosUserRoleEntry OBJECT-TYPE
    SYNTAX         NtnQosUserRoleEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the characteristics
        of an user role. User role characteristics include a role 
        combination, a user and group name and user session
        attributes, such as a session identifier and a session
        initiation timestamp."

    INDEX { ntnQosUserRoleIfIndex }
    ::= { ntnQosUserRoleTable 1 }

NtnQosUserRoleEntry ::= SEQUENCE {
        ntnQosUserRoleIfIndex         InterfaceIndex,
        ntnQosUserRoleRoleCombination RoleCombination,
        ntnQosUserRoleUserName        SnmpAdminString,
        ntnQosUserRoleUserGroup       SnmpAdminString,
        ntnQosUserRoleSessionId       Unsigned32,
        ntnQosUserRoleSessionStart    Unsigned32,
        ntnQosUserRoleSessionGroup    Unsigned32,
        ntnQosUserRoleStorage         StorageType,
        ntnQosUserRoleStatus          RowStatus
}

ntnQosUserRoleIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosUserRoleEntry. The ifIndex
        value of this attribute must correspond to an
        ifTable entry with the same ifIndex value."

    ::= { ntnQosUserRoleEntry 1 }

ntnQosUserRoleRoleCombination OBJECT-TYPE
    SYNTAX         RoleCombination
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The role combination that is associated with the
        interface with an ifIndex value that is equal to
        ntnQosUserRoleIfIndex and the user identified by
        the ntnQosUserRoleUserName attribute.

        A user role combination is used to logically identify 
        a physical interface to which policy rules and actions 
        can be applied. The role combination string must be
        unique from any other role combinations defined in
        system." 

    ::= { ntnQosUserRoleEntry 2 }

ntnQosUserRoleUserName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..255))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The user name identifying the user that is currently
        associated with this user role (i.e., ifIndex and
        role combination) information." 

    ::= { ntnQosUserRoleEntry 3 }

ntnQosUserRoleUserGroup OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..255))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The user group with which the user, identified by
        the ntnQosUserRoleUserName attribute, is associated."

    ::= { ntnQosUserRoleEntry 4 }

ntnQosUserRoleSessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session identifier used to
        track instances of this user role entry (i.e., the
        user role entry for a specific interface and user)." 

    ::= { ntnQosUserRoleEntry 5 }

ntnQosUserRoleSessionStart OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "seconds"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session start timestamp. The
        value of this attribute corresponds to the value of
        the sysUpTime attribute, coverted to seconds, at the 
        instant that this user role entry is created and/or 
        updated."

    ::= { ntnQosUserRoleEntry 6 }

ntnQosUserRoleSessionGroup OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session group identifier. Multiple
        user sessions belong to the same group if they share 
        the same role combination and have the same value for
        this attribute. This session group value is associated 
        with installed policy criteria to unambiguously identify
        the users and interfaces to which QoS policy is being
        applied."

    ::= { ntnQosUserRoleEntry 7 }

ntnQosUserRoleStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosUserRoleStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosUserRoleEntry 8 }

ntnQosUserRoleStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosUserRoleEntry 9 }

--
-- Nortel Networks QoS Interface Shaping Objects
--

ntnQosIfShapingTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosIfShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Identifies shaping criteria that is to be applied
        to a specific interface."

    ::= { ntnQosInterfaceClasses 6 }

ntnQosIfShapingEntry OBJECT-TYPE
    SYNTAX         NtnQosIfShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosIfShapingTable.

        Each row identifies an interface value that
        corresponds to an entry in the ifTable (MIB-II) 
        and shaping criteria with which the interface 
        is associated."

    INDEX { ntnQosIfShapingIfIndex }
    ::= { ntnQosIfShapingTable 1 }

NtnQosIfShapingEntry ::= SEQUENCE {
        ntnQosIfShapingIfIndex         InterfaceIndex,
        ntnQosIfShapingSpecific        RowPointer,
        ntnQosIfShapingLabel           SnmpAdminString,
        ntnQosIfShapingStorage         StorageType,
        ntnQosIfShapingStatus          RowStatus
}

ntnQosIfShapingIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosIfShapingEntry. The ifIndex
        value of this attribute must correspond to the
        ifTable entry with the same ifIndex value."

    ::= { ntnQosIfShapingEntry 1 }

ntnQosIfShapingSpecific OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This indicates the shaping behavior to be applied 
        by pointing to an entry containing detailed 
        parameters. Note that entries in that specific 
        table must be managed explicitly.

        For example, ntnQosIfShapingSpecific may point to 
        an entry in ntnQosTBParamTable, which contains 
        an instance of a single set of Token Bucket 
        parameters.

        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. Referenced 
        entries may not be deleted while still 
        referenced by an active entry in this table."

    ::= { ntnQosIfShapingEntry 2 }

ntnQosIfShapingLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the interface shaping 
        data in a textual manner."

    DEFVAL { "" }
    ::= { ntnQosIfShapingEntry 3 }

ntnQosIfShapingStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION 
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosIfShapingStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosIfShapingEntry 4 }

ntnQosIfShapingStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosIfShapingEntry 5 }

--
-- Nortel Networks QoS CoS Shaping Objects
--

ntnQosCosShapingTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosCosShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Identifies shaping criteria that is to be applied
        to a specific interface's CoS queues."

    ::= { ntnQosInterfaceClasses 7 }

ntnQosCosShapingEntry OBJECT-TYPE
    SYNTAX         NtnQosCosShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosCosShapingTable.

        Each row identifies an interface value that
        corresponds to an entry in the ifTable (MIB-II),
        a CoS value and shaping criteria with which the 
        interface-CoS tuple is associated."

    INDEX { ntnQosCosShapingIfIndex, ntnQosCosShapingCos }
    ::= { ntnQosCosShapingTable 1 }

NtnQosCosShapingEntry ::= SEQUENCE {
        ntnQosCosShapingIfIndex        InterfaceIndex,
        ntnQosCosShapingCos            QosIeee802Cos,
        ntnQosCosShapingSpecific       RowPointer,
        ntnQosCosShapingLabel          SnmpAdminString,
        ntnQosCosShapingStorage        StorageType,
        ntnQosCosShapingStatus         RowStatus
}

ntnQosCosShapingIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosCosShapingEntry. The ifIndex
        value of this attribute must correspond to the
        ifTable entry with the same ifIndex value."

    ::= { ntnQosCosShapingEntry 1 }

ntnQosCosShapingCos OBJECT-TYPE
    SYNTAX         QosIeee802Cos
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The IEEE 802 CoS value that is associated with this
        instance of the ntnQosCosShapingEntry."

    ::= { ntnQosCosShapingEntry 2 }

ntnQosCosShapingSpecific OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This indicates the shaping behavior to be applied 
        by pointing to an entry containing detailed 
        parameters. Note that entries in that specific 
        table must be managed explicitly.

        For example, ntnQosCosShapingSpecific may point to 
        an entry in ntnQosTBParamTable, which contains 
        an instance of a single set of Token Bucket 
        parameters.

        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. Referenced 
        entries may not be deleted while still 
        referenced by an active entry in this table."

    ::= { ntnQosCosShapingEntry 3 }

ntnQosCosShapingLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the CoS shaping 
        data in a textual manner."

    DEFVAL { "" }
    ::= { ntnQosCosShapingEntry 4 }

ntnQosCosShapingStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION 
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosCosShapingStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosCosShapingEntry 5 }

ntnQosCosShapingStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosCosShapingEntry 6 }

--
-- Nortel Networks QoS Queue Shaping Objects
--

ntnQosQueueShapingTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosQueueShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Identifies shaping criteria that is to be applied
        to a specific interface's egress queues."

    ::= { ntnQosInterfaceClasses 8 }

ntnQosQueueShapingEntry OBJECT-TYPE
    SYNTAX         NtnQosQueueShapingEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosQueueShapingTable.

        Each row identifies an interface value that
        corresponds to an entry in the ifTable (MIB-II),
        a queue identifier and shaping criteria with 
        which the interface-queue tuple is associated."

    INDEX { ntnQosQueueShapingIfIndex, ntnQosQueueShapingQueue }
    ::= { ntnQosQueueShapingTable 1 }

NtnQosQueueShapingEntry ::= SEQUENCE {
        ntnQosQueueShapingIfIndex        InterfaceIndex,
        ntnQosQueueShapingQueue          Integer32,
        ntnQosQueueShapingSpecific       RowPointer,
        ntnQosQueueShapingLabel          SnmpAdminString,
        ntnQosQueueShapingStorage        StorageType,
        ntnQosQueueShapingStatus         RowStatus
}

ntnQosQueueShapingIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosQueueShapingEntry. The ifIndex
        value of this attribute must correspond to the
        ifTable entry with the same ifIndex value."

    ::= { ntnQosQueueShapingEntry 1 }

ntnQosQueueShapingQueue OBJECT-TYPE
    SYNTAX         Integer32 (1..255)
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The specific queue, within the queue set that is
        associated with the interface identified by the
        ntnQosQueueShapingIfIndex value, on which traffic 
        is to be shaped. The value of this attribute
        corresponds to the ntnQosIfQueueIndex for the
        specified queue within the queue set (defined in 
        the ntnQosIfQueueTable). 

        The range of acceptable values for this attribute 
        is dictated by the current queue set parameters 
        for the system, as defined by the QoS configuration 
        attribute ntnQosConfigDefaultQueueCfg."

    ::= { ntnQosQueueShapingEntry 2 }

ntnQosQueueShapingSpecific OBJECT-TYPE
    SYNTAX         RowPointer
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This indicates the shaping behavior to be applied 
        by pointing to an entry containing detailed 
        parameters. Note that entries in that specific 
        table must be managed explicitly.

        For example, ntnQosQueueShapingSpecific may point to 
        an entry in ntnQosTBParamTable, which contains 
        an instance of a single set of Token Bucket 
        parameters.

        Entries in other tables must exist prior to 
        being referenced. It may be permissible to 
        create component table entries and the entries 
        being referenced in the same request. Referenced 
        entries may not be deleted while still 
        referenced by an active entry in this table."

    ::= { ntnQosQueueShapingEntry 3 }

ntnQosQueueShapingLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the queue shaping 
        data in a textual manner."

    DEFVAL { "" }
    ::= { ntnQosQueueShapingEntry 4 }

ntnQosQueueShapingStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION 
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosQueueShapingStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosQueueShapingEntry 5 }

ntnQosQueueShapingStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosQueueShapingEntry 6 }

--
-- Nortel Networks QoS Mapping Classes
--

ntnQosMappingClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 10 }

--
-- Nortel Networks QoS DSCP-to-COS Mapping objects
--

ntnQosDscpToCosTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosDscpToCosEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Maps each DSCP to an IEEE COS value."

    ::= { ntnQosMappingClasses 1 }

ntnQosDscpToCosEntry OBJECT-TYPE
    SYNTAX         NtnQosDscpToCosEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosDscpToCos class. A total of 64 
        class instances are constantly maintained (i.e., entries
        may be modified but not added or deleted) in this table." 

    INDEX { ntnQosDscpToCosId }
    ::= { ntnQosDscpToCosTable 1 }

NtnQosDscpToCosEntry ::= SEQUENCE {
        ntnQosDscpToCosId       IndexInteger,
        ntnQosDscpToCosDscp     Dscp,
        ntnQosDscpToCosCos      QosIeee802Cos,
        ntnQosDscpToCosDropPrec INTEGER,
        ntnQosDscpToCosLabel    SnmpAdminString,
        ntnQosDscpToCosStorage  StorageType,
        ntnQosDscpToCosStatus   RowStatus,
        ntnQosDscpToCosNewDscp  Dscp
}

ntnQosDscpToCosId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A unique identifier for this DSCP-to-COS mapping." 

    ::= { ntnQosDscpToCosEntry 1 }

ntnQosDscpToCosDscp OBJECT-TYPE
    SYNTAX         Dscp
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The DSCP attribute that is used to determine the 
        appropriate Layer 2 COS value for mapping purposes. 
        DSCP values 0 through 63 (inclusive) are maintained 
        in the table."

    ::= { ntnQosDscpToCosEntry 2 }

ntnQosDscpToCosCos OBJECT-TYPE
    SYNTAX         QosIeee802Cos
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IEEE 802 COS value to use when mapping the DSCP 
        value specified by the ntnQosDscpToCosDscp attribute 
        to a IEEE 802 COS."

    ::= { ntnQosDscpToCosEntry 3 }

ntnQosDscpToCosDropPrec OBJECT-TYPE
    SYNTAX         INTEGER  {
                       lowDropPrec(1),
                       highDropPrec(2)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The relative drop precedence value to use when mapping 
        the DSCP value specified by the ntnQosDscpToCosDscp 
        attribute to a drop precedence. During times of congestion,
        packets with a hign drop precedence are discarded before
        those with a low drop precedence."

    ::= { ntnQosDscpToCosEntry 4 }

ntnQosDscpToCosLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..20))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to logically identify the mapping."

    ::= { ntnQosDscpToCosEntry 5 }

ntnQosDscpToCosStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosDscpToCosStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosDscpToCosEntry 6 }

ntnQosDscpToCosStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosDscpToCosEntry 7 }

ntnQosDscpToCosNewDscp OBJECT-TYPE
    SYNTAX         Dscp
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Specifies a new DSCP value to be used when DSCP  
        mutation (i.e., translation) is required."

    ::= { ntnQosDscpToCosEntry 8 }

--
-- Nortel Networks QoS COS-to-DSCP Mapping Table
--

ntnQosCosToDscpTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosCosToDscpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Maps each of eight Layer 2 COS values to a DSCP."

    ::= { ntnQosMappingClasses 2 }

ntnQosCosToDscpEntry OBJECT-TYPE
    SYNTAX         NtnQosCosToDscpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosCosToDscp class. A total of 8 
        class instances are constantly maintained (i.e., entries
        may be modified but not added or deleted) in this table."
    
    INDEX { ntnQosCosToDscpId }
    ::= { ntnQosCosToDscpTable 1 }

NtnQosCosToDscpEntry ::= SEQUENCE {
        ntnQosCosToDscpId      IndexInteger,
        ntnQosCosToDscpCos     QosIeee802Cos,
        ntnQosCosToDscpDscp    Dscp,
        ntnQosCosToDscpLabel   SnmpAdminString,
        ntnQosCosToDscpStorage StorageType,
        ntnQosCosToDscpStatus  RowStatus
}

ntnQosCosToDscpId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A unique identifier for this COS-to-DSCP mapping."

    ::= { ntnQosCosToDscpEntry 1 }

ntnQosCosToDscpCos OBJECT-TYPE
    SYNTAX         QosIeee802Cos
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The Layer 2 COS class instance attribute that is used to 
        determine the appropriate DSCP mappings. COS values 0 
        through 7 (inclusive) are maintained in the table."

    ::= { ntnQosCosToDscpEntry 2 }

ntnQosCosToDscpDscp OBJECT-TYPE
    SYNTAX         Dscp
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The DSCP value to use when mapping the Layer 2 COS value
        specified by the ntnQosCosToDscpCos attribute to a DSCP."

    ::= { ntnQosCosToDscpEntry 3 }

ntnQosCosToDscpLabel OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..20))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to logically identify the mapping."

    ::= { ntnQosCosToDscpEntry 4 }

ntnQosCosToDscpStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosCosToDscpStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosCosToDscpEntry 5 }

ntnQosCosToDscpStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosCosToDscpEntry 6 }

--
-- Nortel Networks QoS Mapping Scalars
--

ntnQosMappingClassesScalars OBJECT IDENTIFIER ::= { ntnQosMappingClasses 3 }

ntnQosMappingRestoreDefault OBJECT-TYPE
    SYNTAX         INTEGER {
                       other(1),
                       dscpToCos(2),
                       cosToDscp(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The object is used to restore factory default values
        for the ntnQosDscpToCosTable and the ntnQosCosToDscpTable.

        Setting the object to dscpToCos(2) will restore the
        ntnQosDscpToCosTable to its factory default state, and
        will restore the value of ntnQosMappingDscpToCosEnabled
        to its factory default value.

        Setting the object to cosToDscp(2) will restore the
        ntnQosCosToDscpTable to its factory default state, and
        will restore the value of ntnQosMappingCosToDscpEnabled
        to its factory default value.

        Setting the value to other(1) has no effect.  The value
        when retrieved is always other(1)."

    ::= { ntnQosMappingClassesScalars 1 }

ntnQosMappingDscpToCosEnabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object controls whether the ntnQosDscpToCosTable
        is enabled.  If the value is false(2), any configuration
        in that table will be ignored."

    ::= { ntnQosMappingClassesScalars 2 }

ntnQosMappingCosToDscpEnabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object controls whether the ntnQosCosToDscpTable
        is enabled.  If the value is false(2), any configuration
        in that table will be ignored."

    ::= { ntnQosMappingClassesScalars 3 }

--
-- Nortel Networks QoS Policy Agent Classes
--

ntnQosPolicyAgtClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 11 }

--
-- Nortel Networks Policy Class Support Table
--

ntnQosPrcSupportTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosPrcSupportEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Each instance of this class specifies a PRC that the device
        supports and a bit string to indicate the attributes of the
        class that are supported."

    ::= { ntnQosPolicyAgtClasses 1 }

ntnQosPrcSupportEntry OBJECT-TYPE
    SYNTAX         NtnQosPrcSupportEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosPrcSupport class that identifies a
        specific policy class and associated attributes as supported
        by the device."

    INDEX { ntnQosPrcSupportId }
    ::= { ntnQosPrcSupportTable 1 }

NtnQosPrcSupportEntry ::= SEQUENCE {
        ntnQosPrcSupportId             IndexInteger,
        ntnQosPrcSupportSupportedPrc   OBJECT IDENTIFIER,
        ntnQosPrcSupportSupportedAttrs OCTET STRING,
        ntnQosPrcSupportMaxPris        Unsigned32,
        ntnQosPrcSupportCurrentPris    Unsigned32
}

ntnQosPrcSupportId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of the ntnQosPrcSupport class."

    ::= { ntnQosPrcSupportEntry 1 }

ntnQosPrcSupportSupportedPrc OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The object identifier of a supported PRC. There may not 
        be more than one instance of the ntnQosPrcSupport class with 
        the same value of ntnQosPrcSupportSupportedPrc."

    ::= { ntnQosPrcSupportEntry 2 }

ntnQosPrcSupportSupportedAttrs OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..8))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "A bit string representing the supported attributes of the
        class that is identified by the ntnQosPrcSupportSupportedPrc
        object. 

        Each bit of this bit mask corresponds to a class attribute,
        with the most significant bit of the i-th octet of this octet
        string corresponding to the (8*i - 7)-th attribute, and the
        least significant bit of the i-th octet corresponding to the
        (8*i)-th class attribute. Each bit of this bit mask specifies 
        whether or not the corresponding class attribute is currently 
        supported, with a '1' indicating support and a '0' indicating 
        no support. If the value of this bit mask is N bits long and
        there are more than N class attributes then the bit mask is
        logically extended with 0's to the required length."

    ::= { ntnQosPrcSupportEntry 3 }

ntnQosPrcSupportMaxPris OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "A non-negative value indicating the maximum numbers of
        policy rule instances that can be installed in the identified
        policy rule class. Note that actual number of instances that
        can be installed in a PRC at any given time may be less than
        this value based on the current operational state (e.g.,
        resources currently consumed) of the device."

    ::= { ntnQosPrcSupportEntry 4 }

ntnQosPrcSupportCurrentPris OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The current numbers of class instances."

    ::= { ntnQosPrcSupportEntry 5 }

--
-- Nortel Networks Policy Device Identification Table
--

ntnQosPolicyDeviceIdentTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosPolicyDeviceIdentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This class contains a single policy rule instance that
        contains device-specific information."

    ::= { ntnQosPolicyAgtClasses 2 }

ntnQosPolicyDeviceIdentEntry OBJECT-TYPE
    SYNTAX         NtnQosPolicyDeviceIdentEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQosPolicyDeviceIdent class. Only
        one instance of this policy class is ever instantiated."

    INDEX { ntnQosPolicyDeviceIdentId }
    ::= { ntnQosPolicyDeviceIdentTable 1 }

NtnQosPolicyDeviceIdentEntry ::= SEQUENCE {
        ntnQosPolicyDeviceIdentId     IndexInteger,
        ntnQosPolicyDeviceIdentDescr  SnmpAdminString,
        ntnQosPolicyDeviceIdentMaxMsg Unsigned32
}

ntnQosPolicyDeviceIdentId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index to uniquely identify an instance of this
        policy class."

    ::= { ntnQosPolicyDeviceIdentEntry 1 }

ntnQosPolicyDeviceIdentDescr OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..255))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "A textual description of the policy agent. This
        value should include the name and version identification 
        of the policy agent hardware and software."

    ::= { ntnQosPolicyDeviceIdentEntry 2 }

ntnQosPolicyDeviceIdentMaxMsg OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The maximum message size, in octets, that the device
        is capable of processing."

    ::= { ntnQosPolicyDeviceIdentEntry 3 }

ntnQosInterfaceTypeNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosInterfaceTypeId, or a zero to indicate 
        that none exist."

    ::= { ntnQosPolicyEvolPibClasses 12 }

--
-- Nortel Networks QoS Application Support Classes
--

ntnQosApplicationClasses OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 13 }

--
-- Nortel Networks DiffServ Access-Elem objects
--

ntnQosDsAccessElemNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosDsAccessElemId, or a zero to indicate 
        that none exist."

    ::= { ntnQosApplicationClasses 1 }

ntnQosDsAccessElemTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosDsAccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A table of IP access elements that a system 
        may use to identify and manipulate IP traffic."

    ::= { ntnQosApplicationClasses 2 }

ntnQosDsAccessElemEntry OBJECT-TYPE
    SYNTAX         NtnQosDsAccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An IP access element entry describes a single 
        filter and one or more actions."

    INDEX { ntnQosDsAccessElemId }
    ::= { ntnQosDsAccessElemTable 1 }

NtnQosDsAccessElemEntry ::= SEQUENCE {
        ntnQosDsAccessElemId               IndexInteger,
        ntnQosDsAccessElemAddrType         InetAddressType,
        ntnQosDsAccessElemDstAddr          InetAddress,
        ntnQosDsAccessElemDstPrefixLength  InetAddressPrefixLength,
        ntnQosDsAccessElemSrcAddr          InetAddress,
        ntnQosDsAccessElemSrcPrefixLength  InetAddressPrefixLength,
        ntnQosDsAccessElemDscp             DscpOrAny,
        ntnQosDsAccessElemFlowId           FlowIdOrAny,
        ntnQosDsAccessElemProtocol         Unsigned32,
        ntnQosDsAccessElemDstL4PortMin     InetPortNumber,
        ntnQosDsAccessElemDstL4PortMax     InetPortNumber,
        ntnQosDsAccessElemSrcL4PortMin     InetPortNumber,
        ntnQosDsAccessElemSrcL4PortMax     InetPortNumber,
        ntnQosDsAccessElemActionDrop       INTEGER,
        ntnQosDsAccessElemActionRemarkDscp Integer32,
        ntnQosDsAccessElemActionRemarkCos  INTEGER,
        ntnQosDsAccessElemActionSetPrec    INTEGER,
        ntnQosDsAccessElemName             SnmpAdminString,
        ntnQosDsAccessElemBlock            SnmpAdminString,
        ntnQosDsAccessElemType             INTEGER,
        ntnQosDsAccessElemStorage          StorageType,
        ntnQosDsAccessElemStatus           RowStatus,
        ntnQosDsAccessElemEvalPrec         Unsigned32
}

ntnQosDsAccessElemId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the access element 
        entries.  Managers can obtain new values 
        for row creation in this table by reading 
        ntnQosDsAccessElemNextFree."

    ::= { ntnQosDsAccessElemEntry 1 }

ntnQosDsAccessElemAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of IP address used by this access element 
        entry.  While other types of addresses are 
        defined in the InetAddressType textual convention, 
        and DNS names, a classifier can only look at 
        packets on the wire. Therefore, this object is 
        limited to IPv4 and IPv6 addresses."

    DEFVAL { ipv4 }
    ::= { ntnQosDsAccessElemEntry 2 }

ntnQosDsAccessElemDstAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        destination IP address. This may not be a DNS 
        name, but may be an IPv4 or IPv6 prefix.  
        ntnQosDsAccessElemDstPrefixLength indicates the 
        number of bits that are relevant."

    DEFVAL { '00000000'h }
    ::= { ntnQosDsAccessElemEntry 3 }

ntnQosDsAccessElemDstPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in 
        ntnQosDsAccessElemDstAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single 
        host address, and a length between 0 and 32 
        indicates the use of a CIDR Prefix. IPv6 is 
        similar, except that prefix lengths range 
        from 0..128."

    DEFVAL { 0 }
    ::= { ntnQosDsAccessElemEntry 4 }

ntnQosDsAccessElemSrcAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        source IP address. This may not be a DNS name, 
        but may be an IPv4 or IPv6 prefix. 
        ntnQosDsAccessElemSrcPrefixLength indicates 
        the number of bits that are relevant."

    DEFVAL { '00000000'h }
    ::= { ntnQosDsAccessElemEntry 5 }

ntnQosDsAccessElemSrcPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in
        ntnQosDsAccessElemSrcAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single host 
        address, and a length between 0 and 32 indicates 
        the use of a CIDR Prefix. IPv6 is similar, 
        except that prefix lengths range from 0..128."

    DEFVAL { 0 }
    ::= { ntnQosDsAccessElemEntry 6 }

ntnQosDsAccessElemDscp OBJECT-TYPE
    SYNTAX         DscpOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The value that the DSCP in the packet must 
        have to match this entry. A value of -1 
        indicates that a specific DSCP value has not 
        been defined and thus all DSCP values are 
        considered a match."

    DEFVAL { -1 }
    ::= { ntnQosDsAccessElemEntry 7 }

ntnQosDsAccessElemFlowId OBJECT-TYPE
    SYNTAX         FlowIdOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The flow identifier in an IPv6 header."

    DEFVAL { -1 }
    ::= { ntnQosDsAccessElemEntry 8 }

ntnQosDsAccessElemProtocol OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP protocol to match against the IPv4 
        protocol number or the IPv6 Next-Header number 
        in the packet. A value of 255 means match all.  
        Note the protocol number of 255 is reserved by 
        IANA, and Next-Header number of 0 is used in 
        IPv6."

    DEFVAL { 255 }
    ::= { ntnQosDsAccessElemEntry 9 }

ntnQosDsAccessElemDstL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry."

    DEFVAL { 0 }
    ::= { ntnQosDsAccessElemEntry 10 }

ntnQosDsAccessElemDstL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry. This value must 
        be equal to or greater than the value specified 
        for this entry in ntnQosDsAccessElemDstL4PortMin."

    DEFVAL { 65535 }
    ::= { ntnQosDsAccessElemEntry 11 }

ntnQosDsAccessElemSrcL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry."

    DEFVAL { 0 }
    ::= { ntnQosDsAccessElemEntry 12 }

ntnQosDsAccessElemSrcL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry. This value 
        must be equal to or greater than the value 
        specified for this entry in 
        ntnQosDsAccessElemSrcL4PortMin."

    DEFVAL { 65535 }
    ::= { ntnQosDsAccessElemEntry 13 }

ntnQosDsAccessElemActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1), 
                       pass(2) 
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet should dropped or switched
        (i.e., not dropped).

        The value 'drop(1)', when specified, will 
        cause the packet being evaluated to be 
        dropped. A value of 'pass(2)' indicates 
        that this packet should not be dropped."

    DEFVAL { pass }
    ::= { ntnQosDsAccessElemEntry 14 }

ntnQosDsAccessElemActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram to be updated
        with the value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated."

    DEFVAL { -1 }
    ::= { ntnQosDsAccessElemEntry 15 }

ntnQosDsAccessElemActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame to be
        updated based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute."

    DEFVAL { ignore }
    ::= { ntnQosDsAccessElemEntry 16 }

ntnQosDsAccessElemActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'."

    DEFVAL { lowDropPrec }
    ::= { ntnQosDsAccessElemEntry 17 }

ntnQosDsAccessElemName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the access element 
        in a textual manner. All related access elements
        (e.g., those that comprise an access-list) must
        have the same label."

    ::= { ntnQosDsAccessElemEntry 18 }

ntnQosDsAccessElemBlock OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to identify access elements
        that are members of the same classification
        block. Access elements are members of the
        same block if they share the same access element
        name (ntnQosDsAccessElemName attribute) and
        the same block name."

    DEFVAL { "" }
    ::= { ntnQosDsAccessElemEntry 19 }

ntnQosDsAccessElemType OBJECT-TYPE
    SYNTAX         INTEGER {
                       dsAcl(1), 
                       dsAppClfr(2),
                       dsMultimediaClfr(3),
                       dsUserDefinedClfr(4)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the DS access element type. Designates
        the higher-level application through which this entry
        was created."

    ::= { ntnQosDsAccessElemEntry 20 }

ntnQosDsAccessElemStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosDsAccessElemEntry 21 }

ntnQosDsAccessElemStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosDsAccessElemEntry 22 }

ntnQosDsAccessElemEvalPrec OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An evaluation order attribute used to order
        elements with the same name and to link elements
        across DS and L2 Access Element tables. Only
        used with NSNA applications."

    ::= { ntnQosDsAccessElemEntry 23 }

--
-- Nortel Networks Layer 2 Access-Elem objects
--

ntnQosL2AccessElemNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosL2AccessElemId, or a zero to indicate 
        that none exist."

    ::= { ntnQosApplicationClasses 3 }

ntnQosL2AccessElemTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosL2AccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A table of IEEE 802-based access elements
        that a system may use to identify and manipulate 
        Layer 2 traffic."

    ::= { ntnQosApplicationClasses 4 }

ntnQosL2AccessElemEntry OBJECT-TYPE
    SYNTAX         NtnQosL2AccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A Layer 2 access element entry describes a single 
        filter and one or more actions."

    INDEX { ntnQosL2AccessElemId }
    ::= { ntnQosL2AccessElemTable 1 }

NtnQosL2AccessElemEntry ::= SEQUENCE {
        ntnQosL2AccessElemId               IndexInteger,
        ntnQosL2AccessElemDstAddr          MacAddress,
        ntnQosL2AccessElemDstAddrMask      MacAddress,
        ntnQosL2AccessElemSrcAddr          MacAddress,
        ntnQosL2AccessElemSrcAddrMask      MacAddress,
        ntnQosL2AccessElemVlanIdMin        Integer32,
        ntnQosL2AccessElemVlanIdMax        Integer32,
        ntnQosL2AccessElemVlanTag          INTEGER,
        ntnQosL2AccessElemEtherType        Integer32,
        ntnQosL2AccessElemUserPriority     INTEGER,
        ntnQosL2AccessElemActionDrop       INTEGER,
        ntnQosL2AccessElemActionRemarkDscp Integer32,
        ntnQosL2AccessElemActionRemarkCos  INTEGER,
        ntnQosL2AccessElemActionSetPrec    INTEGER,
        ntnQosL2AccessElemName             SnmpAdminString,
        ntnQosL2AccessElemBlock            SnmpAdminString,
        ntnQosL2AccessElemType             INTEGER,
        ntnQosL2AccessElemStorage          StorageType,
        ntnQosL2AccessElemStatus           RowStatus,
        ntnQosL2AccessElemEvalPrec         Unsigned32
}

ntnQosL2AccessElemId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the access element
        entries.  Managers can obtain new values
        for row creation in this table by reading
        ntnQosL2AccessElemNextFree."

    ::= { ntnQosL2AccessElemEntry 1 }

ntnQosL2AccessElemDstAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 address against which the 802 DA of 
        incoming traffic streams will be compared. 
        Frames whose 802 DA matches the physical 
        address specified by this object, taking 
        into account address wildcarding as specified 
        by the ntnQosL2AccessElemDstAddrMask object, 
        are potentially  subject to the processing 
        guidelines that are associated with this 
        entry through the related action class."

    DEFVAL { '000000000000'h }
    ::= { ntnQosL2AccessElemEntry 2 }

ntnQosL2AccessElemDstAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 
        destination address that should be considered 
        when performing a 802 DA comparison against 
        the address specified in the 
        ntnQosL2AccessElemDstAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 DA in 
        received frames to derive the value to be 
        compared against the ntnQosL2AccessElemDstAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnQosL2AccessElemDstAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnQosL2AccessElemDstAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnQosL2AccessElemDstAddr object."

    DEFVAL { '000000000000'h }
    ::= { ntnQosL2AccessElemEntry 3 }

ntnQosL2AccessElemSrcAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 MAC address against which the 802 
        MAC SA of incoming traffic streams will be 
        compared. Frames whose 802 MAC SA matches the 
        physical address specified by this object, 
        taking into account address wildcarding as 
        specified by the ntnQosL2AccessElemSrcAddrMask 
        object, are potentially subject to the 
        processing guidelines that are associated with 
        this entry through the related action class."

    DEFVAL { '000000000000'h }
    ::= { ntnQosL2AccessElemEntry 4 }

ntnQosL2AccessElemSrcAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 MAC 
        source address that should be considered when 
        performing a 802 MAC SA comparison against 
        the address specified in the 
        ntnQosL2AccessElemSrcAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 MAC SA 
        in received frames to derive the value to be 
        compared against the ntnQosL2AccessElemSrcAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnQosL2AccessElemSrcAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnQosL2AccessElemSrcAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnQosL2AccessElemSrcAddr object."

    DEFVAL { '000000000000'h }
    ::= { ntnQosL2AccessElemEntry 5 }

ntnQosL2AccessElemVlanIdMin OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnQosL2AccessElemVlanIdMin value must be 
        less than or equal to the 
        ntnQosL2AccessElemVlanIdMax value.

        Setting the ntnQosL2AccessElemVlanIdMin object 
        to 1 and the ntnQosL2AccessElemVlanIdMax to 
        4094 indicates that VLAN data should not be 
        considered during traffic classification." 

    DEFVAL { 1 }
    ::= { ntnQosL2AccessElemEntry 6 }

ntnQosL2AccessElemVlanIdMax OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnQosL2AccessElemVlanIdMax value must 
        be greater than or equal to the 
        ntnQosL2AccessElemVlanIdMin value.

        Setting the ntnQosL2AccessElemVlanIdMin 
        object to 1 and the ntnQosL2AccessElemVlanIdMax 
        to 4094 indicates that VLAN data should not 
        be considered during traffic classification."

    DEFVAL { 4094 }
    ::= { ntnQosL2AccessElemEntry 7 }

ntnQosL2AccessElemVlanTag OBJECT-TYPE
    SYNTAX         INTEGER  {
                       untagged(1),
                       tagged(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        packet format that frames must have to match 
        this L2 classifier entry.

        A value of 'untagged(1)' indicates that only 
        frames received untagged will match this 
        classifier component.

        A value of 'tagged(2)' means that only frames
        received tagged will be considered a match.

        A value of 'ignore(3)' means that the presence,
        or lack thereof, of a VLAN tag in the received
        packet will not be considered when determining 
        whether a frame matches this classifier entry."

    DEFVAL  { ignore }
    ::= { ntnQosL2AccessElemEntry 8 }

ntnQosL2AccessElemEtherType OBJECT-TYPE
    SYNTAX         Integer32 (0..'ffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the value that will be 
        compared against the value contained in the 
        EtherType field of an IEEE 802 frame. Example 
        settings would include 'IP' (0x0800), 'ARP' 
        (0x0806) and 'IPX' (0x8137).

        Setting the ntnQosL2AccessElemEtherType object 
        to 0xFFFF indicates that EtherType data should 
        not be considered during traffic classification.
        Note the EtherType value of 0xFFFF is reserved 
        by IANA."

    DEFVAL { 'ffff'h }
    ::= { ntnQosL2AccessElemEntry 9 }

ntnQosL2AccessElemUserPriority OBJECT-TYPE
    SYNTAX         INTEGER {
                       matchPriority0(1),
                       matchPriority1(2),
                       matchPriority2(3),
                       matchPriority3(4),
                       matchPriority4(5),
                       matchPriority5(6),
                       matchPriority6(7),
                       matchPriority7(8),
                       matchAllPriorities(9)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802.1p user priority value against which 
        the value contained in the user priority 
        field of a tagged 802.1 frame is compared. A 
        test for equality is performed when 
        determining if a match exists between the data 
        in a data link layer frame and the value of 
        this classifier.

        Setting the value of this object to 
        'matchAllPriorities(9)' causes all user priority 
        values to match this attribute. This essentially 
        makes any comparisons with regard to user 
        priority values unnecessary."

    DEFVAL { matchAllPriorities }
    ::= { ntnQosL2AccessElemEntry 10 }

ntnQosL2AccessElemActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet should dropped or switched
        (i.e., not dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped."

    DEFVAL { pass }
    ::= { ntnQosL2AccessElemEntry 11 }

ntnQosL2AccessElemActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram to be updated
        with the value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated."

    DEFVAL { -1 }
    ::= { ntnQosL2AccessElemEntry 12 }

ntnQosL2AccessElemActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame to be
        updated based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute."

    DEFVAL { ignore }
    ::= { ntnQosL2AccessElemEntry 13 }

ntnQosL2AccessElemActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'."

    DEFVAL { lowDropPrec }
    ::= { ntnQosL2AccessElemEntry 14 }

ntnQosL2AccessElemName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the access element
        in a textual manner. All related access elements
        (e.g., those that comprise an access-list) must
        have the same label."

    ::= { ntnQosL2AccessElemEntry 15 }

ntnQosL2AccessElemBlock OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to identify access elements
        that are members of the same classification
        block. Access elements are members of the
        same block if they share the same access element
        name (ntnQosDsAccessElemName attribute) and
        the same block name."

    DEFVAL { "" }
    ::= { ntnQosL2AccessElemEntry 16 }

ntnQosL2AccessElemType OBJECT-TYPE
    SYNTAX         INTEGER {
                       l2Acl(1), 
                       l2AppClfr(2),
                       l2MultimediaClfr(3),
                       l2UserDefinedClfr(4)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the L2 access element type. Designates
        the higher-level application through which this entry
        was created."

    ::= { ntnQosL2AccessElemEntry 17 }

ntnQosL2AccessElemStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosL2AccessElemEntry 18 }

ntnQosL2AccessElemStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosL2AccessElemEntry 19 }

ntnQosL2AccessElemEvalPrec OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An evaluation order attribute used to order
        elements with the same name and to link elements
        across DS and L2 Access Element tables. Only
        used with NSNA applications."

    ::= { ntnQosL2AccessElemEntry 20 }

--
-- Nortel Networks Access-List Assignment objects
--

ntnQosAccessAsgnNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosAccessAsgnId, or a zero to indicate 
        that none exist."

    ::= { ntnQosApplicationClasses 5 }

ntnQosAccessAsgnTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosAccessAsgnEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A table of access assignments that are currently 
        in place (i.e., access element/interface
        associations)."

    ::= { ntnQosApplicationClasses 6 }

ntnQosAccessAsgnEntry OBJECT-TYPE
    SYNTAX         NtnQosAccessAsgnEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An access assignment entry describes an
        access element/interface association."

    INDEX { ntnQosAccessAsgnId }
    ::= { ntnQosAccessAsgnTable 1 }

NtnQosAccessAsgnEntry ::= SEQUENCE {
        ntnQosAccessAsgnId                  IndexInteger,
        ntnQosAccessAsgnAclType             INTEGER,
        ntnQosAccessAsgnName                SnmpAdminString,
        ntnQosAccessAsgnIfIndex             InterfaceIndexOrZero,
        ntnQosAccessAsgnRate                Unsigned32,
        ntnQosAccessAsgnBurstSize           BurstSize,
        ntnQosAccessAsgnOutActionDrop       INTEGER,
        ntnQosAccessAsgnOutActionRemarkDscp Integer32,
        ntnQosAccessAsgnOutActionRemarkCos  INTEGER,
        ntnQosAccessAsgnOutActionSetPrec    INTEGER,
        ntnQosAccessAsgnStatsType           INTEGER,
        ntnQosAccessAsgnStorage             StorageType,
        ntnQosAccessAsgnStatus              RowStatus,
        ntnQosAccessAsgnNonMatchActionDrop  INTEGER,
        ntnQosAccessAsgnMeterType           AutonomousType,
        ntnQosAccessAsgnSecondaryRate       Unsigned32,
        ntnQosAccessAsgnSecondaryBurstSize  BurstSize,
        ntnQosAccessAsgnYelActionDrop       INTEGER,
        ntnQosAccessAsgnYelActionRemarkDscp Integer32,
        ntnQosAccessAsgnYelActionRemarkCos  INTEGER,
        ntnQosAccessAsgnYelActionSetPrec    INTEGER,
        ntnQosAccessAsgnSetPriority         Unsigned32,
        ntnQosAccessAsgnMeteringMode        INTEGER
}

ntnQosAccessAsgnId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the access
        assignment entries.  Managers can obtain 
        new values for row creation in this table 
        by reading ntnQosAccessAsgnNextFree."

    ::= { ntnQosAccessAsgnEntry 1 }

ntnQosAccessAsgnAclType OBJECT-TYPE
    SYNTAX         INTEGER {
                       dsAcl(1), 
                       l2Acl(2),
                       dsAppClfr(3),
                       l2AppClfr(4),
                       dsUserDefinedClfr(5),
                       l2UserDefinedClfr(6),
                       multimediaClfr(7),
                       dsL2NsnaClfr(8),
                       dsL2UbpClfr(9),
                       dsL2TrafficProfile(10)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the type of access element that is
        being referenced."

    ::= { ntnQosAccessAsgnEntry 2 }

ntnQosAccessAsgnName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference an access assignment
        in a textual manner. This label, coupled with
        the access element type identifier attribute
        (ntnQosAccessAsgnAclType), uniquely
        identifies an access assignment entry."

    ::= { ntnQosAccessAsgnEntry 3 }

ntnQosAccessAsgnIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndexOrZero
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The interface to which the identified
        access element is to be applied, specified 
        in terms of an ifIndex value. A value of
        0 indicates that the entry represents a
        template that is used to facilitate entry
        creation for a specific interface based
        on certain events."

    ::= { ntnQosAccessAsgnEntry 4 }

ntnQosAccessAsgnRate OBJECT-TYPE
    SYNTAX         Unsigned32  (0..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The token-bucket rate, in kilobits per
        second (kbps). This attribute is used for:

        CIR for Simple Token Bucket
        CIR in RFC 2697 for srTCM
        CIR in RFC 2698 for trTCM
        CTR in RFC 2859 for TSWTCM
        AverageRate in RFC 3290.

        A rate value equal to 0 indicates that
        no metering is being requested."

    DEFVAL { 0 }
    ::= { ntnQosAccessAsgnEntry 5 }

ntnQosAccessAsgnBurstSize OBJECT-TYPE
    SYNTAX         BurstSize
    UNITS          "Bytes"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes in a single
        transmission burst. This attribute is
        used for:

        Token bucket size for Simple Token Bucket
        CBS in RFC 2697 for srTCM
        CBS in RFC 2698 for trTCM
        Burst Size in RFC 3290."

    DEFVAL { 0 }
    ::= { ntnQosAccessAsgnEntry 6 }

ntnQosAccessAsgnOutActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet deemed out-of-profile 
        should dropped or switched (i.e., not 
        dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped."

    DEFVAL { pass }
    ::= { ntnQosAccessAsgnEntry 7 }

ntnQosAccessAsgnOutActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram that is deemed to
        be out-of-profile to be updated with the 
        value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated."

    DEFVAL { -1 }
    ::= { ntnQosAccessAsgnEntry 8 }

ntnQosAccessAsgnOutActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame that is
        deemed to be out-of-profile to be updated 
        based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute."

    DEFVAL { ignore }
    ::= { ntnQosAccessAsgnEntry 9 }

ntnQosAccessAsgnOutActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'."

    DEFVAL { lowDropPrec }
    ::= { ntnQosAccessAsgnEntry 10 }

ntnQosAccessAsgnStatsType OBJECT-TYPE
    SYNTAX         INTEGER  {
                       individualClfr(1),
                       aggregateClfr(2),
                       noStatsTracking(3)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of statistics tracking used by this 
        access assignment. The value of this attribute 
        dictates the amount of statistics tracking resources 
        (i.e., counters) consumed by this access assignment
        entry. A value of 'individualClfr(1)' means that 
        separate counters will be allocated, space permitting, 
        for each access element referenced by the assignment. 
        A value of 'aggregateClfr(2)' means that a single 
        counter will be used to accumulate the statistics 
        data for all the classifiers referenced by the 
        access assignment. A value of 'noStatsTracking(3)'
        means that no statistics tracking resources will be
        allocated."

    DEFVAL { aggregateClfr }
    ::= { ntnQosAccessAsgnEntry 11 }

ntnQosAccessAsgnStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosAccessAsgnEntry 12 }

ntnQosAccessAsgnStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosAccessAsgnEntry 13 }

ntnQosAccessAsgnNonMatchActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2),
                       defer(3)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet deemed out-of-profile 
        should dropped or switched (i.e., not 
        dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped.
        A value of 'defer(3)' indicates that no
        explicit drop/pass action has been specified
        (i.e., no-op)."

    DEFVAL { defer }
    ::= { ntnQosAccessAsgnEntry 14 }

ntnQosAccessAsgnMeterType OBJECT-TYPE
    SYNTAX         AutonomousType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The metering algorithm associated with 
        the rate and burst parameters. The number 
        and type of algorithms supported is 
        implementation dependent. Potential 
        algorithms include:

        ntnQosTBParamSimpleTokenBucket
        ntnQosTBParamSrTCMBlind
        ntnQosTBParamSrTCMAware
        ntnQosTBParamTrTCMBlind
        ntnQosTBParamTrTCMAware

        An OBJECT-IDENTITY for each of these 
        algorithms is defined in this module. 
        Additional values may be specified as 
        needed."

    DEFVAL { ntnQosTBParamSimpleTokenBucket }
    ::= { ntnQosAccessAsgnEntry 15 }

ntnQosAccessAsgnSecondaryRate OBJECT-TYPE
    SYNTAX         Unsigned32  (0..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The token-bucket rate, in kilobits per
        second (kbps). This attribute is used for:

        PIR in RFC 2698 for trTCM

        A rate value equal to 0 indicates that
        no secondary metering is being requested."

    DEFVAL { 0 }
    ::= { ntnQosAccessAsgnEntry 16 }

ntnQosAccessAsgnSecondaryBurstSize OBJECT-TYPE
    SYNTAX         BurstSize
    UNITS          "Bytes"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes in a single
        transmission burst. This attribute is
        used for:

        EBS in RFC 2697 for srTCM
        PBS in RFC 2698 for trTCM."

    DEFVAL { 0 }
    ::= { ntnQosAccessAsgnEntry 17 }

ntnQosAccessAsgnYelActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet deemed out-of-profile 
        should dropped or switched (i.e., not 
        dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped.

        Applies to yellow actions."

    DEFVAL { pass }
    ::= { ntnQosAccessAsgnEntry 18 }

ntnQosAccessAsgnYelActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram that is deemed to
        be out-of-profile to be updated with the 
        value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated.

        Applies to yellow actions."

    DEFVAL { -1 }
    ::= { ntnQosAccessAsgnEntry 19 }

ntnQosAccessAsgnYelActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame that is
        deemed to be out-of-profile to be updated 
        based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute.

        Applies to yellow actions."

    DEFVAL { ignore }
    ::= { ntnQosAccessAsgnEntry 20 }

ntnQosAccessAsgnYelActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'.

        Applies to yellow actions."

    DEFVAL { lowDropPrec }
    ::= { ntnQosAccessAsgnEntry 21 }

ntnQosAccessAsgnSetPriority OBJECT-TYPE
    SYNTAX         Unsigned32 (1..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Supports filter set prioritization when
        multiple filters sets may be associated with
        an entity (e.g., user, interface) but only
        one can be applied at the given time. The
        set with a higher priority value will take
        precedence and supercede the set with a
        lower priority value. When priority values
        are equal, no filter set update will occur.

        Consulted only when an entity/filter set
        conflict needs resolution."

    DEFVAL { 1 }
    ::= { ntnQosAccessAsgnEntry 22 }

ntnQosAccessAsgnMeteringMode OBJECT-TYPE
    SYNTAX         INTEGER {
                       noMetering(1),
                       perPolicyUniformRateMetering(2),
                       perPolicyIndividualRateMetering(3),
                       perClassifierMetering(4)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the metering mode requested for
        the identified filter set.

        A value of 'noMetering(1)' indicates that
        metering is not requested for the components
        of the identified filter set.

        A 'perPolicyUniformRateMetering(2)' value
        indicates that a unique meter will be associated
        with each policy that comprises the identified
        filter set. Uniform rate and burst data will be
        used for all meters.

        A 'perPolicyIndividualRateMetering(3)' value
        indicates that a unique meter will be associated
        with each policy that comprises the identified
        filter set. Unique rate and burst data derived
        from the associated classifier data will be
        used for each meter.

        Setting the attribute to 'perClassifierMetering(4)'
        will initiate metering on a per-classifier basis.
        Rate and burst data will be derived from the
        associated classifier data. The presence of this
        data will determine whether or not a meter is
        allocated for the classifier."

    ::= { ntnQosAccessAsgnEntry 23 }

--
-- Nortel Networks QoS Interface Application Objects
--

ntnQosIfAppsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosIfAppsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Identifies QoS/security application criteria 
        that is to be applied to a specific interface."

    ::= { ntnQosApplicationClasses 7 }

ntnQosIfAppsEntry OBJECT-TYPE
    SYNTAX         NtnQosIfAppsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the ntnQosIfAppsTable.

        Each row identifies an interface value that
        corresponds to an entry in the ifTable (MIB-II) 
        and application criteria with which the interface 
        is associated."

    INDEX { ntnQosIfAppsIfIndex }
    ::= { ntnQosIfAppsTable 1 }

NtnQosIfAppsEntry ::= SEQUENCE {
        ntnQosIfAppsIfIndex             InterfaceIndex,
        ntnQosIfAppsAppEnable           BITS,
        ntnQosIfAppsDefaultGateway      InetAddressIPv4,
        ntnQosIfAppsIfType              INTEGER,
        ntnQosIfAppsDHCPServer          InetAddressIPv4,
        ntnQosIfAppsStorage             StorageType,
        ntnQosIfAppsStatus              RowStatus
}

ntnQosIfAppsIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosIfAppsEntry. The ifIndex
        value of this attribute must correspond to the
        ifTable entry with the same ifIndex value."

    ::= { ntnQosIfAppsEntry 1 }

ntnQosIfAppsAppEnable OBJECT-TYPE
    SYNTAX         BITS {
                        other(0),
                        arpSpoofing(1),
                        dhcpSnooping(2),
                        dhcpSpoofing(3),
                        sqlSlam(4),
                        nachia(5),
                        xmas(6),
                        synFinScan(7),
                        ftpPort(8),
                        dnsPort(9),
                        bpduBlocker(10)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An enumeration of interface applications. Indicates
        which applications, if any, apply to the associated
        interface."

    ::= { ntnQosIfAppsEntry 2 }

ntnQosIfAppsDefaultGateway OBJECT-TYPE
    SYNTAX         InetAddressIPv4
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address of the default gateway to be used
        when defining the policy criteria used by the ARP 
        Spoofing support."

    DEFVAL { '00000000'h }
    ::= { ntnQosIfAppsEntry 3 }

ntnQosIfAppsIfType OBJECT-TYPE
    SYNTAX         INTEGER {
                       access(1),  
                       core(2)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A value describing the overall interface type.
        Used when determining whether the DHCP Blocking 
        support should be applied to the associated 
        interface."

    ::= { ntnQosIfAppsEntry 4 }

ntnQosIfAppsDHCPServer OBJECT-TYPE
    SYNTAX         InetAddressIPv4
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address of the DHCP Server to be used
        when defining the policy criteria used by the 
        DHCP Spoofing support."

    DEFVAL { '00000000'h }
    ::= { ntnQosIfAppsEntry 5 }

ntnQosIfAppsStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION 
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosIfAppsStatus object is equal to active(1)."

    DEFVAL  { nonVolatile }
    ::= { ntnQosIfAppsEntry 6 }

ntnQosIfAppsStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosIfAppsEntry 7 }

--
-- Nortel Networks User Policy Table
--

ntnQosUserPolicyNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for
        ntnQosUserPolicyId, or a zero to indicate
        that none exist."

    ::= { ntnQosApplicationClasses 8 }

ntnQosUserPolicyTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosUserPolicyEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "User policy definitions. This class describes the
        user policy data that exists on the device. User 
        policy data associates a user and role with an
        interface."

    ::= { ntnQosApplicationClasses 9 }

ntnQosUserPolicyEntry OBJECT-TYPE
    SYNTAX         NtnQosUserPolicyEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the characteristics
        of a user policy data set. User policy data set components 
        include a role combination, a user and group name and user 
        session attributes, such as a session identifier and a 
        session initiation timestamp."

    INDEX { ntnQosUserPolicyId }
    ::= { ntnQosUserPolicyTable 1 }

NtnQosUserPolicyEntry ::= SEQUENCE {
        ntnQosUserPolicyId              IndexInteger,
        ntnQosUserPolicyIfIndex         InterfaceIndex,
        ntnQosUserPolicyRoleCombination RoleCombination,
        ntnQosUserPolicyUserName        SnmpAdminString,
        ntnQosUserPolicyUserGroup       SnmpAdminString,
        ntnQosUserPolicySessionId       Unsigned32,
        ntnQosUserPolicySessionStart    Unsigned32,
        ntnQosUserPolicySessionGroup    Unsigned32,
        ntnQosUserPolicyStorage         StorageType,
        ntnQosUserPolicyStatus          RowStatus,
        ntnQosUserPolicySrcMacAddr      MacAddress,
        ntnQosUserPolicySrcMacAddrMask  MacAddress
}

ntnQosUserPolicyId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the user policy
        entries.  Managers can obtain new values for 
        row creation in this table by reading 
        ntnQosUserPolicyNextFree."

    ::= { ntnQosUserPolicyEntry 1 }

ntnQosUserPolicyIfIndex OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The ifIndex value that is associated with this
        instance of the ntnQosUserPolicyEntry. The ifIndex
        value of this attribute must correspond to an
        ifTable entry with the same ifIndex value."

    ::= { ntnQosUserPolicyEntry 2 }

ntnQosUserPolicyRoleCombination OBJECT-TYPE
    SYNTAX         RoleCombination
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The role combination that is associated with the
        interface with an ifIndex value that is equal to
        ntnQosUserPolicyIfIndex and the user identified by
        the ntnQosUserPolicyUserName attribute.

        A user role combination is used to logically identify 
        a physical interface to which policy rules and actions 
        can be applied. The role combination string must be
        unique from any other role combinations defined in
        system." 

    ::= { ntnQosUserPolicyEntry 3 }

ntnQosUserPolicyUserName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..255))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The user name identifying the user that is currently
        associated with this user policy (i.e., ifIndex and
        role combination) information." 

    ::= { ntnQosUserPolicyEntry 4 }

ntnQosUserPolicyUserGroup OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..255))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The user group with which the user, identified by
        the ntnQosUserPolicyUserName attribute, is associated."

    ::= { ntnQosUserPolicyEntry 5 }

ntnQosUserPolicySessionId OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session identifier used to
        track instances of this user policy entry (i.e., the
        user policy entry for a specific interface and user)." 

    ::= { ntnQosUserPolicyEntry 6 }

ntnQosUserPolicySessionStart OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "seconds"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session start timestamp. The
        value of this attribute corresponds to the value of
        the sysUpTime attribute, coverted to seconds, at the 
        instant that this user policy entry is created and/or 
        updated."

    ::= { ntnQosUserPolicyEntry 7 }

ntnQosUserPolicySessionGroup OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The system-assigned session group identifier. Multiple
        user sessions belong to the same group if they share 
        the same role combination and have the same value for
        this attribute. This session group value is associated 
        with installed policy criteria to unambiguously identify
        the users and interfaces to which QoS policy is being
        applied."

    ::= { ntnQosUserPolicyEntry 8 }

ntnQosUserPolicyStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value permanent(4) need not
        allow write-access to any columnar objects in the row.

        This object may not be modified if the associated
        ntnQosUserPolicyStatus object is equal to active(1)."

    DEFVAL  { volatile }
    ::= { ntnQosUserPolicyEntry 9 }

ntnQosUserPolicyStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value. Row
        creation using only default values is supported."

    ::= { ntnQosUserPolicyEntry 10 }

ntnQosUserPolicySrcMacAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 source MAC address associated with
        the identified user. If specified, this address
        will automatically be used in associated user
        policy criteria to uniquely identify user traffic
        on an interface on which potentially other users'
        traffic will be present."

    DEFVAL { '000000000000'h }
    ::= { ntnQosUserPolicyEntry 11 }

ntnQosUserPolicySrcMacAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in an 802 source
        MAC address that should be considered when 
        performing a 802 MAC SA comparison against the 
        address specified in the ntnQosUserPolicySrcMacAddr
        object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 MAC SA 
        in received frames to derive the value to be 
        compared against the ntnQosUserPolicySrcMacAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnQosUserPolicySrcMacAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in bytes must equal the 
        length in bytes of the ntnQosUserPolicySrcMacAddr. 
        Note that a mask with no bits set (i.e., all zeroes) 
        effectively wildcards the ntnQosUserPolicySrcMacAddr 
        object."

    DEFVAL { '000000000000'h }
    ::= { ntnQosUserPolicyEntry 12 }

--
-- Nortel Networks DS/L2 Access-Elem objects
--

ntnQosDsL2AccessElemNextFree OBJECT-TYPE
    SYNTAX         IndexIntegerNextFree
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object contains an unused value for 
        ntnQosDsL2AccessElemId, or a zero to indicate 
        that none exist."

    ::= { ntnQosApplicationClasses 10 }

ntnQosDsL2AccessElemTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosDsL2AccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A table of IP/L2 access elements that a system 
        may use to identify and manipulate IP/L2 traffic."

    ::= { ntnQosApplicationClasses 11 }

ntnQosDsL2AccessElemEntry OBJECT-TYPE
    SYNTAX         NtnQosDsL2AccessElemEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An IP/L2 access element entry describes a single 
        filter and one or more actions."

    INDEX { ntnQosDsL2AccessElemId }
    ::= { ntnQosDsL2AccessElemTable 1 }

NtnQosDsL2AccessElemEntry ::= SEQUENCE {
        ntnQosDsL2AccessElemId                  IndexInteger,
        ntnQosDsL2AccessElemAddrType            InetAddressType,
        ntnQosDsL2AccessElemDstIpAddr           InetAddress,
        ntnQosDsL2AccessElemDstIpPrefixLength   InetAddressPrefixLength,
        ntnQosDsL2AccessElemSrcIpAddr           InetAddress,
        ntnQosDsL2AccessElemSrcIpPrefixLength   InetAddressPrefixLength,
        ntnQosDsL2AccessElemDscp                DscpOrAny,
        ntnQosDsL2AccessElemFlowId              FlowIdOrAny,
        ntnQosDsL2AccessElemProtocol            Unsigned32,
        ntnQosDsL2AccessElemDstL4PortMin        InetPortNumber,
        ntnQosDsL2AccessElemDstL4PortMax        InetPortNumber,
        ntnQosDsL2AccessElemSrcL4PortMin        InetPortNumber,
        ntnQosDsL2AccessElemSrcL4PortMax        InetPortNumber,
        ntnQosDsL2AccessElemDstMacAddr          MacAddress,
        ntnQosDsL2AccessElemDstMacAddrMask      MacAddress,
        ntnQosDsL2AccessElemSrcMacAddr          MacAddress,
        ntnQosDsL2AccessElemSrcMacAddrMask      MacAddress,
        ntnQosDsL2AccessElemVlanIdMin           Integer32,
        ntnQosDsL2AccessElemVlanIdMax           Integer32,
        ntnQosDsL2AccessElemVlanTag             INTEGER,
        ntnQosDsL2AccessElemEtherType           Integer32,
        ntnQosDsL2AccessElemUserPriority        INTEGER,
        ntnQosDsL2AccessElemActionDrop          INTEGER,
        ntnQosDsL2AccessElemActionRemarkDscp    Integer32,
        ntnQosDsL2AccessElemActionRemarkCos     INTEGER,
        ntnQosDsL2AccessElemActionSetPrec       INTEGER,
        ntnQosDsL2AccessElemName                SnmpAdminString,
        ntnQosDsL2AccessElemBlock               SnmpAdminString,
        ntnQosDsL2AccessElemType                INTEGER,
        ntnQosDsL2AccessElemStorage             StorageType,
        ntnQosDsL2AccessElemStatus              RowStatus,
        ntnQosDsL2AccessElemEvalPrec            Unsigned32,
        ntnQosDsL2AccessElemIpFlags             BITS,
        ntnQosDsL2AccessElemTcpCtrlFlags        BITS,
        ntnQosDsL2AccessElemIpv4Options         INTEGER,
        ntnQosDsL2AccessElemPktType             INTEGER,
        ntnQosDsL2AccessElemIvidMin             Integer32,
        ntnQosDsL2AccessElemIvidMax             Integer32,
        ntnQosDsL2AccessElemUnknownUcastFrames  TruthValue,
        ntnQosDsL2AccessElemUnknownMcastFrames  TruthValue,
        ntnQosDsL2AccessElemKnownUcastFrames    TruthValue,
        ntnQosDsL2AccessElemKnownMcastFrames    TruthValue,
        ntnQosDsL2AccessElemBcastFrames         TruthValue,
        ntnQosDsL2AccessElemUnknownIpMcast      TruthValue,
        ntnQosDsL2AccessElemKnownIpMcast        TruthValue,
        ntnQosDsL2AccessElemNonIpPkt            TruthValue,
        ntnQosDsL2AccessElemVersion             VersionIndicator,
        ntnQosDsL2AccessElemUnknownNonIpMcast   TruthValue,
        ntnQosDsL2AccessElemKnownNonIpMcast     TruthValue,
        ntnQosDsL2AccessElemMasterBlockMember   TruthValue,
        ntnQosDsL2AccessElemMeterType           INTEGER,
        ntnQosDsL2AccessElemRate                Unsigned32,
        ntnQosDsL2AccessElemBurstSize           BurstSize,
        ntnQosDsL2AccessElemOutActionDrop       INTEGER,
        ntnQosDsL2AccessElemOutActionRemarkDscp Integer32,
        ntnQosDsL2AccessElemOutActionRemarkCos  INTEGER,
        ntnQosDsL2AccessElemOutActionSetPrec    INTEGER,
        ntnQosDsL2AccessElemSecondaryRate       Unsigned32,
        ntnQosDsL2AccessElemSecondaryBurstSize  BurstSize,
        ntnQosDsL2AccessElemYelActionDrop       INTEGER,
        ntnQosDsL2AccessElemYelActionRemarkDscp Integer32,
        ntnQosDsL2AccessElemYelActionRemarkCos  INTEGER,
        ntnQosDsL2AccessElemYelActionSetPrec    INTEGER
}

ntnQosDsL2AccessElemId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that enumerates the access element 
        entries.  Managers can obtain new values 
        for row creation in this table by reading 
        ntnQosDsL2AccessElemNextFree.

        Version 1/2 attribute."

    ::= { ntnQosDsL2AccessElemEntry 1 }

ntnQosDsL2AccessElemAddrType OBJECT-TYPE
    SYNTAX         InetAddressType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The type of IP address used by this access element 
        entry.  While other types of addresses are 
        defined in the InetAddressType textual convention, 
        and DNS names, a classifier can only look at 
        packets on the wire. Therefore, this object is 
        limited to IPv4 and IPv6 addresses.

        Version 1/2 attribute."

    DEFVAL { ipv4 }
    ::= { ntnQosDsL2AccessElemEntry 2 }

ntnQosDsL2AccessElemDstIpAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        destination IP address. This may not be a DNS 
        name, but may be an IPv4 or IPv6 prefix.  
        ntnQosDsL2AccessElemDstIpPrefixLength indicates the 
        number of bits that are relevant.

        Version 1/2 attribute."

    DEFVAL { '00000000'h }
    ::= { ntnQosDsL2AccessElemEntry 3 }

ntnQosDsL2AccessElemDstIpPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in 
        ntnQosDsL2AccessElemDstIpAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single 
        host address, and a length between 0 and 32 
        indicates the use of a CIDR Prefix. IPv6 is 
        similar, except that prefix lengths range 
        from 0..128.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 4 }

ntnQosDsL2AccessElemSrcIpAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP address to match against the packet's 
        source IP address. This may not be a DNS name, 
        but may be an IPv4 or IPv6 prefix. 
        ntnQosDsL2AccessElemSrcIpPrefixLength indicates 
        the number of bits that are relevant.

        Version 1/2 attribute."

    DEFVAL { '00000000'h }
    ::= { ntnQosDsL2AccessElemEntry 5 }

ntnQosDsL2AccessElemSrcIpPrefixLength OBJECT-TYPE
    SYNTAX         InetAddressPrefixLength
    UNITS          "bits"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The length of the CIDR Prefix carried in
        ntnQosDsL2AccessElemSrcIpAddr. In IPv4 addresses, 
        a length of 0 indicates a match of any address; 
        a length of 32 indicates a match of a single host 
        address, and a length between 0 and 32 indicates 
        the use of a CIDR Prefix. IPv6 is similar, 
        except that prefix lengths range from 0..128.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 6 }

ntnQosDsL2AccessElemDscp OBJECT-TYPE
    SYNTAX         DscpOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The value that the DSCP in the packet must 
        have to match this entry. A value of -1 
        indicates that a specific DSCP value has not 
        been defined and thus all DSCP values are 
        considered a match.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnQosDsL2AccessElemEntry 7 }

ntnQosDsL2AccessElemFlowId OBJECT-TYPE
    SYNTAX         FlowIdOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The flow identifier in an IPv6 header.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnQosDsL2AccessElemEntry 8 }

ntnQosDsL2AccessElemProtocol OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The IP protocol to match against the IPv4 
        protocol number or the IPv6 Next-Header number 
        in the packet. A value of 255 means match all.  
        Note the protocol number of 255 is reserved by 
        IANA, and Next-Header number of 0 is used in 
        IPv6.

        Version 1/2 attribute."

    DEFVAL { 255 }
    ::= { ntnQosDsL2AccessElemEntry 9 }

ntnQosDsL2AccessElemDstL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 10 }

ntnQosDsL2AccessElemDstL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 destination 
        port number in the packet must have in order 
        to match this classifier entry. This value must 
        be equal to or greater than the value specified 
        for this entry in ntnQosDsL2AccessElemDstL4PortMin.

        Version 1/2 attribute."

    DEFVAL { 65535 }
    ::= { ntnQosDsL2AccessElemEntry 11 }

ntnQosDsL2AccessElemSrcL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 12 }

ntnQosDsL2AccessElemSrcL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the layer-4 source 
        port number in the packet must have in order 
        to match this classifier entry. This value 
        must be equal to or greater than the value 
        specified for this entry in 
        ntnQosDsL2AccessElemSrcL4PortMin.

        Version 1/2 attribute."

    DEFVAL { 65535 }
    ::= { ntnQosDsL2AccessElemEntry 13 }

ntnQosDsL2AccessElemDstMacAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 address against which the 802 DA of 
        incoming traffic streams will be compared. 
        Frames whose 802 DA matches the physical 
        address specified by this object, taking 
        into account address wildcarding as specified 
        by the ntnQosDsL2AccessElemDstMacAddrMask object, 
        are potentially  subject to the processing 
        guidelines that are associated with this 
        entry through the related action class.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnQosDsL2AccessElemEntry 14 }

ntnQosDsL2AccessElemDstMacAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 
        destination address that should be considered 
        when performing a 802 DA comparison against 
        the address specified in the 
        ntnQosDsL2AccessElemDstMacAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 DA in 
        received frames to derive the value to be 
        compared against the ntnQosDsL2AccessElemDstMacAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnQosDsL2AccessElemDstMacAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnQosDsL2AccessElemDstMacAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnQosDsL2AccessElemDstMacAddr object.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnQosDsL2AccessElemEntry 15 }

ntnQosDsL2AccessElemSrcMacAddr OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802 MAC address against which the 802 
        MAC SA of incoming traffic streams will be 
        compared. Frames whose 802 MAC SA matches the 
        physical address specified by this object, 
        taking into account address wildcarding as 
        specified by the ntnQosDsL2AccessElemSrcMacAddrMask 
        object, are potentially subject to the 
        processing guidelines that are associated with 
        this entry through the related action class.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnQosDsL2AccessElemEntry 16 }

ntnQosDsL2AccessElemSrcMacAddrMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the bits in a 802 MAC 
        source address that should be considered when 
        performing a 802 MAC SA comparison against 
        the address specified in the 
        ntnQosDsL2AccessElemSrcMacAddr object.

        The value of this object represents a mask 
        that is logically and'ed with the 802 MAC SA 
        in received frames to derive the value to be 
        compared against the ntnQosDsL2AccessElemSrcMacAddr 
        address. A zero bit in the mask thus means that 
        the corresponding bit in the address always 
        matches. The ntnQosDsL2AccessElemSrcMacAddr value 
        must also be masked using this value prior to 
        any comparisons.

        The length of this object in octets must equal 
        the length in octets of the 
        ntnQosDsL2AccessElemSrcMacAddr. Note that a mask 
        with no bits set (i.e., all zeroes) effectively 
        wildcards the ntnQosDsL2AccessElemSrcMacAddr object.

        Version 1/2 attribute."

    DEFVAL { '000000000000'h }
    ::= { ntnQosDsL2AccessElemEntry 17 }

ntnQosDsL2AccessElemVlanIdMin OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnQosDsL2AccessElemVlanIdMin value must be 
        less than or equal to the 
        ntnQosDsL2AccessElemVlanIdMax value.

        Setting the ntnQosDsL2AccessElemVlanIdMin object 
        to 1 and the ntnQosDsL2AccessElemVlanIdMax to 
        4094 indicates that VLAN data should not be 
        considered during traffic classification.

        If a frame is double tagged, this value
        represents the outer VLAN ID (Ovid).

        Version 1/2 attribute."

    DEFVAL { 1 }
    ::= { ntnQosDsL2AccessElemEntry 18 }

ntnQosDsL2AccessElemVlanIdMax OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the VLAN ID (VID) in 
        a tagged packet must have in order to match 
        this classifier entry.

        The ntnQosDsL2AccessElemVlanIdMax value must 
        be greater than or equal to the 
        ntnQosDsL2AccessElemVlanIdMin value.

        Setting the ntnQosDsL2AccessElemVlanIdMin 
        object to 1 and the ntnQosDsL2AccessElemVlanIdMax 
        to 4094 indicates that VLAN data should not 
        be considered during traffic classification.

        If a frame is double tagged, this value
        represents the outer VLAN ID (Ovid).

        Version 1/2 attribute."

    DEFVAL { 4094 }
    ::= { ntnQosDsL2AccessElemEntry 19 }

ntnQosDsL2AccessElemVlanTag OBJECT-TYPE
    SYNTAX         INTEGER  {
                       untagged(1),
                       tagged(2),
                       ignore(3),
                       doubleTagged(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer 
        packet format that frames must have to match 
        this L2 classifier entry.

        A value of 'untagged(1)' indicates that only
        frames received untagged will match this
        classifier component.

        A value of 'tagged(2)' means that only frames
        received tagged (both single tagged and double
        tagged) will be considered a match.

        A value of 'ignore(3)' means that the presence,
        or lack thereof, of a VLAN tag in the received
        packet will not be considered when determining
        whether a frame matches this classifier entry.

        A value of 'doubleTagged(4)' means that only
        frames received with an inner and outer tag
        (i.e., a double tagged frame) will be considered
        a match.

        Version 1/2 attribute."

    DEFVAL  { ignore }
    ::= { ntnQosDsL2AccessElemEntry 20 }

ntnQosDsL2AccessElemEtherType OBJECT-TYPE
    SYNTAX         Integer32 (0..'ffff'h)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object specifies the value that will be 
        compared against the value contained in the 
        EtherType field of an IEEE 802 frame. Example 
        settings would include 'IP' (0x0800), 'ARP' 
        (0x0806) and 'IPX' (0x8137).

        Setting the ntnQosDsL2AccessElemEtherType object 
        to 0xFFFF indicates that EtherType data should 
        not be considered during traffic classification.
        Note the EtherType value of 0xFFFF is reserved 
        by IANA.

        Version 1/2 attribute."

    DEFVAL { 'ffff'h }
    ::= { ntnQosDsL2AccessElemEntry 21 }

ntnQosDsL2AccessElemUserPriority OBJECT-TYPE
    SYNTAX         INTEGER {
                       matchPriority0(1),
                       matchPriority1(2),
                       matchPriority2(3),
                       matchPriority3(4),
                       matchPriority4(5),
                       matchPriority5(6),
                       matchPriority6(7),
                       matchPriority7(8),
                       matchAllPriorities(9)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The 802.1p user priority value against which 
        the value contained in the user priority 
        field of a tagged 802.1 frame is compared. A 
        test for equality is performed when 
        determining if a match exists between the data 
        in a data link layer frame and the value of 
        this classifier.

        Setting the value of this object to 
        'matchAllPriorities(9)' causes all user priority 
        values to match this attribute. This essentially 
        makes any comparisons with regard to user 
        priority values unnecessary.

        Version 1/2 attribute."

    DEFVAL { matchAllPriorities }
    ::= { ntnQosDsL2AccessElemEntry 22 }

ntnQosDsL2AccessElemActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1), 
                       pass(2) 
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet should dropped or switched
        (i.e., not dropped).

        The value 'drop(1)', when specified, will 
        cause the packet being evaluated to be 
        dropped. A value of 'pass(2)' indicates 
        that this packet should not be dropped.

        Version 1/2 attribute."

    DEFVAL { pass }
    ::= { ntnQosDsL2AccessElemEntry 23 }

ntnQosDsL2AccessElemActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram to be updated
        with the value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnQosDsL2AccessElemEntry 24 }

ntnQosDsL2AccessElemActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame to be
        updated based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute.

        Version 1/2 attribute."

    DEFVAL { ignore }
    ::= { ntnQosDsL2AccessElemEntry 25 }

ntnQosDsL2AccessElemActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'.

        Version 1/2 attribute."

    DEFVAL { lowDropPrec }
    ::= { ntnQosDsL2AccessElemEntry 26 }

ntnQosDsL2AccessElemName OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(1..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to reference the access element 
        in a textual manner. All related access elements
        (e.g., those that comprise an access-list) must
        have the same label.

        Version 1/2 attribute."

    ::= { ntnQosDsL2AccessElemEntry 27 }

ntnQosDsL2AccessElemBlock OBJECT-TYPE
    SYNTAX         SnmpAdminString (SIZE(0..32))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "A label used to identify access elements
        that are members of the same classification
        block. Access elements are members of the
        same block if they share the same access element
        name (ntnQosDsL2AccessElemName attribute) and
        the same block name.

        Version 1/2 attribute."

    DEFVAL { "" }
    ::= { ntnQosDsL2AccessElemEntry 28 }

ntnQosDsL2AccessElemType OBJECT-TYPE
    SYNTAX         INTEGER {
                       dsL2NsnaClfr(1),
                       dsL2UbpClfr(2),
                       dsL2TrafficProfile(3)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the DS/L2 access element type. Designates
        the higher-level application through which this entry
        was created.

        Version 1/2 attribute."

    ::= { ntnQosDsL2AccessElemEntry 29 }

ntnQosDsL2AccessElemStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'.

        Version 1/2 attribute."

    DEFVAL { nonVolatile }
    ::= { ntnQosDsL2AccessElemEntry 30 }

ntnQosDsL2AccessElemStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value.

        Version 1/2 attribute."

    ::= { ntnQosDsL2AccessElemEntry 31 }

ntnQosDsL2AccessElemEvalPrec OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "An evaluation order attribute used to order
        elements with the same name and to link elements
        across DS and L2 Access Element tables. Only
        used with NSNA applications.

        Version 1/2 attribute."

    ::= { ntnQosDsL2AccessElemEntry 32 }

ntnQosDsL2AccessElemIpFlags OBJECT-TYPE
    SYNTAX         BITS {
                        ipv4MfFlagSet(0),
                        ipv4DfFlagSet(1)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Represents the flags present in an IPv4 header.
        If a bit that is associated with a specific IP flag
        is set in this attribute, IPv4 packets with the
        specified flag set in the header will match this
        classifier.

        Version 2 attribute."

    DEFVAL  { { } }
    ::= { ntnQosDsL2AccessElemEntry 33 }

ntnQosDsL2AccessElemTcpCtrlFlags OBJECT-TYPE
    SYNTAX         BITS {
                        tcpUrgFlagSet(0),
                        tcpAckFlagSet(1),
                        tcpPshFlagSet(2),
                        tcpRstFlagSet(3),
                        tcpSynFlagSet(4),
                        tcpFinFlagSet(5)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Represents the control flags (code bits) present in
        an TCP header. If a bit that is associated with a
        specific TCP control flag is set in this attribute,
        TCP packets with the specified flag set in the header
        will match this classifier.

        Version 2 attribute."

    DEFVAL  { { } }
    ::= { ntnQosDsL2AccessElemEntry 34 }

ntnQosDsL2AccessElemIpv4Options OBJECT-TYPE
    SYNTAX         INTEGER  {
                       ipv4OptionsPresent(1),
                       ipv4OptionsNotPresent(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates whether the presence,
        or lack thereof, of IPv4 options in an IPv4
        packet should should be considered when looking
        for a match for this classifier entry.

        A value of 'ipv4OptionsPresent(1)' indicates
        that only IPv4 packets with options will match
        this classifier element.

        A value of 'ipv4OptionsNotPresent(2)' means that
        only IPv4 packets without options will be
        considered a match.

        A value of 'ignore(3)' means that the presence,
        or lack thereof, of IPv4 options in the received
        packet will not be considered when determining
        whether a packet matches this classifier entry.

        Version 2 attribute."

    DEFVAL  { ignore }
    ::= { ntnQosDsL2AccessElemEntry 35 }

ntnQosDsL2AccessElemPktType OBJECT-TYPE
    SYNTAX         INTEGER  {
                       ethernetII(1),
                       snap(2),
                       llc(3),
                       ignore(4)
                   }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This object indicates the data link layer
        frame format that frames must have to match
        this L2 classifier entry.

        A value of 'ethernetII(1)' indicates that only
        Ethernet II format frames will match this
        classifier component.

        A value of 'snap(2)' indicates that only
        IEEE 802 SNAP format frames will match this
        classifier component.

        A value of 'llc(3)' indicates that only
        IEEE 802 LLC format frames will match this
        classifier component.

        A value of 'ignore(4)' means that the frame,
        format will not be considered when determining
        whether a frame matches this classifier entry.

        Version 2 attribute."

    DEFVAL  { ignore }
    ::= { ntnQosDsL2AccessElemEntry 36 }

ntnQosDsL2AccessElemIvidMin OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The minimum value that the Inner VLAN ID (Ivid)
        in a double tagged packet must have in order to
        match this classifier entry.

        The ntnL2MultiFieldClfrIvidMin value must be
        less than or equal to the
        ntnL2MultiFieldClfrIvidMax value.

        Setting the ntnL2MultiFieldClfrIvidMin object
        to 1 and the ntnL2MultiFieldClfrIvidMax to
        4094 indicates that inner VLAN tag data should
        not be considered during traffic classification.

        A non-default value for this attribute may only
        be specified if the ntnL2MultiFieldClfrVlanTag
        attribute has a value of 'doubleTagged(4)'.

        Version 2 attribute."

    DEFVAL { 1 }
    ::= { ntnQosDsL2AccessElemEntry 37 }

ntnQosDsL2AccessElemIvidMax OBJECT-TYPE
    SYNTAX         Integer32 (1..4094)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum value that the Inner VLAN ID (Ivid)
        in a double tagged packet must have in order to
        match this classifier entry.

        The ntnL2MultiFieldClfrIvidMax value must
        be greater than or equal to the
        ntnL2MultiFieldClfrIvidMin value.

        Setting the ntnL2MultiFieldClfrIvidMin
        object to 1 and the ntnL2MultiFieldClfrIvidMax
        to 4094 indicates that VLAN data should not
        be considered during traffic classification.

        A non-default value for this attribute may only
        be specified if the ntnL2MultiFieldClfrVlanTag
        attribute has a value of 'doubleTagged(4)'.

        Version 2 attribute."

    DEFVAL { 4094 }
    ::= { ntnQosDsL2AccessElemEntry 38 }

ntnQosDsL2AccessElemUnknownUcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing an unknown
        unicast destination address will match this
        classification entry. A value of 'false(2)'
        indicates that no classification is requested
        based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 39 }

ntnQosDsL2AccessElemUnknownMcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing an unknown
        multicast destination address will match
        this classification entry. A value of
        'false(2)' indicates that no classification
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 40 }

ntnQosDsL2AccessElemKnownUcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a known
        unicast destination address will match
        this classification entry. A value of
        'false(2)' indicates that no classification
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 41 }

ntnQosDsL2AccessElemKnownMcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a known
        multicast destination address will match
        this classification entry. A value of
        'false(2)' indicates that no classification
        is requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 42 }

ntnQosDsL2AccessElemBcastFrames OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', frames containing a broadcast 
        destination address will match this 
        classification entry. A value of 'false(2)' 
        indicates that no classification is 
        requested based on this address type.

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 43 }

ntnQosDsL2AccessElemUnknownIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', IP packets containing an unknown
        multicast destination address will match this
        classification entry. A value of 'false(2)' indicates
        that no classification is requested based on this
        address type.

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 44 }

ntnQosDsL2AccessElemKnownIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', IP packets containing a known
        multicast destination address will match this
        classification entry. A value of 'false(2)' indicates
        that no classification is requested based on this
        address type.

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 45 }

ntnQosDsL2AccessElemNonIpPkt OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non IP packets will match this
        classification entry. A value of 'false(2)' indicates
        that no classification is requested based on this
        packet type.

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 46 }

ntnQosDsL2AccessElemVersion OBJECT-TYPE
    SYNTAX         VersionIndicator
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Version indicator for ntnQosDsL2AccessElemTable."

    DEFVAL  { version1 }
    ::= { ntnQosDsL2AccessElemEntry 47 }

ntnQosDsL2AccessElemUnknownNonIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non-IP packets containing an unknown
        multicast destination address will match this
        classification entry. A value of 'false(2)' indicates
        that no classification is requested based on this
        address type.

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 48 }

ntnQosDsL2AccessElemKnownNonIpMcast OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', non-IP packets containing a known
        multicast destination address will match this
        classification entry. A value of 'false(2)' indicates
        that no classification is requested based on this
        address type.

        Version 2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 49 }

ntnQosDsL2AccessElemMasterBlockMember OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "If 'true(1)', attribute values in this DsL2Access
        element will take precedence over values in other
        entries when multiple elements are members of the
        same block and a single value must be chosen to 
        represent all of the block members. 

        For example, a metered policy with a block of filters 
        requires a single in-profile-action be specified.
        This attribute is used to identify the master block
        member from the block member list from which the
        in-profile-action will be derived. 

        A value of 'false(2)' indicates that, if this element
        is the member of a block, attribute values in this
        element will not explicitly take precedence over
        values in other block member elements. 

        Multiple block members may have the value of this 
        attribute set to 'true(1)'. If multiple block member 
        masters are defined or if all block members have the 
        value of this attribute set to 'false(2)', value 
        precedence is determined using element evaluation
        precedence (i.e., the block member with the lowest 
        evaluation precedence acts as the master when 
        necessary). 

        Version 1/2 attribute."

    DEFVAL { false }
    ::= { ntnQosDsL2AccessElemEntry 50 }

ntnQosDsL2AccessElemMeterType OBJECT-TYPE
    SYNTAX         INTEGER {
                       simpleTokenBucket(1),
                       srTCMBlind(2),
                       srTCMAware(3),
                       trTCMBlind(4),
                       trTCMAware(5)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The metering algorithm associated with
        the rate and burst parameters.

        Version 1/2 attribute."

    DEFVAL { simpleTokenBucket }
    ::= { ntnQosDsL2AccessElemEntry 51 }

ntnQosDsL2AccessElemRate OBJECT-TYPE
    SYNTAX         Unsigned32  (0..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The token-bucket rate, in kilobits per
        second (kbps). This attribute is used for:

        CIR for Simple Token Bucket
        CIR in RFC 2697 for srTCM
        CIR in RFC 2698 for trTCM
        CTR in RFC 2859 for TSWTCM
        AverageRate in RFC 3290.

        A rate value equal to 0 indicates that
        no metering is being requested.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 52 }

ntnQosDsL2AccessElemBurstSize OBJECT-TYPE
    SYNTAX         BurstSize
    UNITS          "Bytes"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes in a single
        transmission burst. This attribute is
        used for:

        Token bucket size for Simple Token Bucket
        CBS in RFC 2697 for srTCM
        CBS in RFC 2698 for trTCM
        Burst Size in RFC 3290.

        Version 1/2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 53 }

ntnQosDsL2AccessElemOutActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet deemed out-of-profile
        should dropped or switched (i.e., not
        dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped.

        Version 1/2 attribute."

    DEFVAL { pass }
    ::= { ntnQosDsL2AccessElemEntry 54 }

ntnQosDsL2AccessElemOutActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram that is deemed to
        be out-of-profile to be updated with the
        value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated.

        Version 1/2 attribute."

    DEFVAL { -1 }
    ::= { ntnQosDsL2AccessElemEntry 55 }

ntnQosDsL2AccessElemOutActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame that is
        deemed to be out-of-profile to be updated
        based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute.

        Version 1/2 attribute."

    DEFVAL { ignore }
    ::= { ntnQosDsL2AccessElemEntry 56 }

ntnQosDsL2AccessElemOutActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'.

        Version 1/2 attribute."

    DEFVAL { lowDropPrec }
    ::= { ntnQosDsL2AccessElemEntry 57 }

ntnQosDsL2AccessElemSecondaryRate OBJECT-TYPE
    SYNTAX         Unsigned32  (0..4294967295)
    UNITS          "kilobits per second"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The token-bucket rate, in kilobits per
        second (kbps). This attribute is used for:

        PIR in RFC 2698 for trTCM

        A rate value equal to 0 indicates that
        no secondary metering is being requested.

        Version 2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 58 }

ntnQosDsL2AccessElemSecondaryBurstSize OBJECT-TYPE
    SYNTAX         BurstSize
    UNITS          "Bytes"
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The maximum number of bytes in a single
        transmission burst. This attribute is
        used for:

        EBS in RFC 2697 for srTCM
        PBS in RFC 2698 for trTCM.

        Version 2 attribute."

    DEFVAL { 0 }
    ::= { ntnQosDsL2AccessElemEntry 59 }

ntnQosDsL2AccessElemYelActionDrop OBJECT-TYPE
    SYNTAX         INTEGER {
                       drop(1),
                       pass(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute is used to specify
        whether a packet deemed out-of-profile
        should dropped or switched (i.e., not
        dropped).

        The value 'drop(1)', when specified, will
        cause the packet being evaluated to be
        dropped. A value of 'pass(2)' indicates
        that this packet should not be dropped.

        Applies to yellow actions.

        Version 2 attribute."

    DEFVAL { pass }
    ::= { ntnQosDsL2AccessElemEntry 60 }

ntnQosDsL2AccessElemYelActionRemarkDscp OBJECT-TYPE
    SYNTAX         Integer32 (-1..63)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action component, when specified,
        will cause the value contained in the
        Differentiated Services (DS) field of an
        associated IP datagram that is deemed to
        be out-of-profile to be updated with the
        value of this object.

        A value of -1 indicates that the DSCP
        field should not be updated.

        Applies to yellow actions.

        Version 2 attribute."

    DEFVAL { -1 }
    ::= { ntnQosDsL2AccessElemEntry 61 }

ntnQosDsL2AccessElemYelActionRemarkCos OBJECT-TYPE
    SYNTAX         INTEGER {
                       markAsPriority0(1),
                       markAsPriority1(2),
                       markAsPriority2(3),
                       markAsPriority3(4),
                       markAsPriority4(5),
                       markAsPriority5(6),
                       markAsPriority6(7),
                       markAsPriority7(8),
                       ignore(9)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the value contained in the user
        priority field of the 802.1Q frame that is
        deemed to be out-of-profile to be updated
        based on the value of this object.

        Specifying a value equal to 'ignore(9)' means
        that no action will be taken related to this
        attribute.

        Applies to yellow actions.

        Version 2 attribute."

    DEFVAL { ignore }
    ::= { ntnQosDsL2AccessElemEntry 62 }

ntnQosDsL2AccessElemYelActionSetPrec OBJECT-TYPE
    SYNTAX         INTEGER {
                       lowDropPrec(1),
                       highDropPrec(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "This action attribute, when specified,
        will cause the packet being evaluated to
        be associated with the specified relative
        drop precedence. The relative drop
        precedence may be used to determine
        traffic precedence relative to other
        traffic being processed by the device
        and other implementation specific
        operations at the egress interface.

        A low value for the drop precedence equates
        to the traffic receiving a higher priority
        in terms of processing. In other words,
        when congestion is encountered, packets
        with a 'highDropPrec(2)' will be dropped
        before packets with a 'lowDropPrec(1)'.

        Applies to yellow actions.

        Version 2 attribute."

    DEFVAL { lowDropPrec }
    ::= { ntnQosDsL2AccessElemEntry 63 }

--
-- Nortel Networks QoS Filter Set Statistics objects
--

ntnQosFilterSetStatsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosFilterSetStatsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains counters for all the 
        traffic passing through a processing element 
        at the filter set/classifier level."

    ::= { ntnQosApplicationClasses 12 }

ntnQosFilterSetStatsEntry OBJECT-TYPE
    SYNTAX         NtnQosFilterSetStatsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry in the filter set statistics table 
        describes a single set of traffic counters 
        for a specific filter set/precedence/evaluation
        order combination."

    INDEX { ntnQosFilterSetStatsAccessAsgnId, ntnQosFilterSetStatsPrecedence, ntnQosFilterSetStatsEvalOrder }
    ::= { ntnQosFilterSetStatsTable 1 }

NtnQosFilterSetStatsEntry ::= SEQUENCE  {
        ntnQosFilterSetStatsAccessAsgnId       IndexInteger,
        ntnQosFilterSetStatsPrecedence         IndexInteger,
        ntnQosFilterSetStatsEvalOrder          IndexInteger,
        ntnQosFilterSetStatsInProfileOctets    Counter64,
        ntnQosFilterSetStatsInProfilePkts      Counter64,
        ntnQosFilterSetStatsOutOfProfileOctets Counter64,
        ntnQosFilterSetStatsOutOfProfilePkts   Counter64,
        ntnQosFilterSetStatsAccessElemId       Integer32,
        ntnQosFilterSetStatsStorage            StorageType,
        ntnQosFilterSetStatsStatus             RowStatus
}

ntnQosFilterSetStatsAccessAsgnId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the 
        Access Assignment element associated with 
        this Filter Set Statistics entry. This 
        attribute has the same value as the 
        ntnQosAccessAsgnId attribute with which it 
        is associated."

    ::= { ntnQosFilterSetStatsEntry 1 }

ntnQosFilterSetStatsPrecedence OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the precedence 
        level associated with the filter set element for
        which statistics data is being returned."

    ::= { ntnQosFilterSetStatsEntry 2 }

ntnQosFilterSetStatsEvalOrder OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index component that identifies the evaluation 
        order associated with the filter set element for
        which statistics data is being returned."

    ::= { ntnQosFilterSetStatsEntry 3 }

ntnQosFilterSetStatsInProfileOctets OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of octets considered to be in-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterSetStatsEntry 4 }

ntnQosFilterSetStatsInProfilePkts OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of packets considered to be in-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterSetStatsEntry 5 }

ntnQosFilterSetStatsOutOfProfileOctets OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of octets considered to be out-of-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterSetStatsEntry 6 }

ntnQosFilterSetStatsOutOfProfilePkts OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The number of packets considered to be out-of-profile
        that have been processed by the associated data 
        path classifier."

    ::= { ntnQosFilterSetStatsEntry 7 }

ntnQosFilterSetStatsAccessElemId OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "Identifies the individual Access Element that is
        a component of the referenced filter set and to
        which the statistics data associated with this
        filter set/precedence/eval-order tuple applies."

    ::= { ntnQosFilterSetStatsEntry 8 }

ntnQosFilterSetStatsStorage OBJECT-TYPE
    SYNTAX         StorageType
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The storage type for this conceptual row.

        Conceptual rows having the value 'permanent' 
        need not allow write-access to any columnar 
        objects in the row.

        This object may not be modified if the 
        associated status object is equal to 'active'."

    DEFVAL { nonVolatile }
    ::= { ntnQosFilterSetStatsEntry 9 }

ntnQosFilterSetStatsStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this row.

        An entry may not exist in the active state 
        unless all objects in the entry have an 
        appropriate value."

    ::= { ntnQosFilterSetStatsEntry 10 }

---
--- Nortel Networks QoS DEI (Discard Eligible Indicator) Support
---

ntnQosDEITable OBJECT-TYPE
    SYNTAX         SEQUENCE OF NtnQosDEIEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Table to configure DEI support.
         DEI provides the user the option to set the packet
         color based on the CFI (used as DEI) bit in the 
         packet 802.1Q tag. Also the user has the option to
         mark the packet color into the CFI bit in the 802.1Q
         tag."

    ::= { ntnQosPolicyEvolPibClasses 14 }

ntnQosDEIEntry OBJECT-TYPE
    SYNTAX         NtnQosDEIEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An instance of the ntnQoSDEI class that identifies
         an interface options for DEI."

    INDEX { ntnQosDEIInterfaceId }
    ::= { ntnQosDEITable 1 }

NtnQosDEIEntry ::= SEQUENCE {
        ntnQosDEIInterfaceId		InterfaceIndex,
        ntnQosDEIIngressColorFromDEI	TruthValue,
        ntnQosDEIEgressMarkDEI		TruthValue
}

ntnQosDEIInterfaceId OBJECT-TYPE
    SYNTAX         InterfaceIndex
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An index that identifies the interface index
         associated with this table entry."
    ::= { ntnQosDEIEntry 1 }

ntnQosDEIIngressColorFromDEI OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This option allows the user to enable ingress coloring 
         if the packets based on DEI in the 802.1Q packet tag."
    ::= { ntnQosDEIEntry 2 }

ntnQosDEIEgressMarkDEI OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This option allows the user to mark at egress the DEI
         bit in the 802.1Q tag if the packet is colored."
    ::= { ntnQosDEIEntry 3 }

--
-- Nortel Networks Policy Agent Configuration Objects
--

ntnQosConfigResetToDefaults OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "All installed QoS policy state information can 
            be deleted and reset to the device's default 
            state by setting the value of this object to 
            'true(1)'. The value 'false(2)' will always be
            returned when querying this object."

    ::= { ntnQosPolicyAgtClasses 3 }

ntnQosConfigTrackStatistics OBJECT-TYPE
    SYNTAX         INTEGER {
                        disabled(1),
                        individual(2),
                        aggregate(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "The value of this attribute determines if
            statistics tracking is enabled for system-level
            policies. System-level policies are created to
            enforce the default QoS processing rules
            associated with 'trusted' and 'untrusted'
            interface classes.

            This attribute is consulted during system
            policy creation. Setting this object to 
            'disabled(1)' causes statistics tracking to be 
            disabled for the system-level policy being created.
            No statistics counter resources will be consumed.
            Setting this attribute to 'individual(2)' causes
            individual counters to be allocated for each
            classifier that comprises the system-level policy.
            A value of 'aggregate(3)' causes a single
            statistics counter to be allocated to track data
            associated with all of the classifiers that
            comprise the system policy.
 
            The value of this attribute is consulted when
            a policy is created or reinstalled. This allows
            the filter statistics tracking to be enabled
            only when deemed necessary."

    ::= { ntnQosPolicyAgtClasses 4 }

ntnQosConfigNVCommitDelay OBJECT-TYPE
    SYNTAX         Unsigned32
    UNITS          "seconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "Specifies the maximum amount of time, in seconds,
            before non-volatile QoS configuration data will be
            written to non-volatile storage. Delaying NV access
            can be used to minimize file I/O aiding agent efficiency
            if a large amount of QoS data is being configured."

    ::= { ntnQosPolicyAgtClasses 5 }

ntnQosConfigDefaultQueueCfg OBJECT-TYPE
    SYNTAX         INTEGER {
                        queueSetOne(1),
                        queueSetTwo(2),
                        queueSetThree(3),
                        queueSetFour(4),
                        queueSetFive(5),
                        queueSetSix(6),
                        queueSetSeven(7),
                        queueSetEight(8)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "The value of this attribute determines the queue
            set that is associated with all egress interfaces
            by default.

            A queue set is characterized by the number of
            queues in the set, how the queues are serviced,
            the queue weights and the buffer resources that
            are associated with the inidividual queues. All
            queue sets are defined in the ntnQosIfQueueTable.

            The value of this attribute is consulted when
            the system is initialized. Changing the value of
            this attribute will therefore not take effect
            until after the system is restarted."

    ::= { ntnQosPolicyAgtClasses 6 }

ntnQosConfigDefaultBufferingCaps OBJECT-TYPE
    SYNTAX         INTEGER {
                        minimumOverAllocation(1),
                        mediumOverAllocation(2),
                        maximumOverAllocation(3),
                        lossless(4)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "The value of this attribute determines the method
            through which buffering resources are allocated to
            ports sharing a pool of buffers.

            The buffering resources associated with a series
            of ports are finite. This buffer pool may be
            statistically allocated to the individual ports
            sharing the pool or they may be allocated such that
            the traffic pattern dictates which ports temporarily
            consume the majority of the buffers.

            The value of this attribute determines the level
            of buffer sharing or over-allocation that can take
            place among ports sharing a buffer pool. Higher
            levels of over-allocation increase the likelyhood
            (under heavy load) of a relatively few number of
            ports consuming all the buffers in a pool, causing
            packets to be dropped on other ports due to buffer
            starvation.

            A value of 'minimumOverAllocation(1)' indicates
            that only a small amount of resource sharing is
            allowed. Greater resource sharing is allowed if the
            value of this attribute is 'mediumOverAllocation(2)'
            and the chance of over-allocation occurring is
            maximized by the specifying that 'maximumOverAllocation(3)'
            is desired.

            In lossless mode, the buffer allocation and thresholds
            are such that pause frames are generated to the endstations
            prior to frames being discarded due to lack of available
            buffers, allowing the end stattions to back off. This
            mode allows for lossless behavior at the expense of throughput.
            The value of this attribute is consulted when
            the system is initialized. Changing the value of
            this attribute will therefore not take effect
            until after the system is restarted."

    ::= { ntnQosPolicyAgtClasses 7 }

ntnQosConfigUBPSupportLevel OBJECT-TYPE
    SYNTAX         INTEGER {
                        ubpSupportDisabled(1),
                        ubpSupportHighSecurityLocalData(2),
                        ubpSupportLowSecurityLocalData(3),
                        ubpSupportEPMData(4)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "Determines whether QoS Agent User Based Policy 
            (UBP) support is enabled and, if so, what level 
            of support is enabled. Setting the value of this
            attribute to 'ubpSupportDisabled(1)' will cause
            user information forwarded by other applications
            (e.g., EAP) to be ignored by the QoS Agent.

            A value of 'ubpSupportHighSecurityLocalData(2)' 
            or 'ubpSupportLowSecurityLocalData(3)' will cause 
            the internal QoS Agent database to be searched for 
            user-specific classification data when user 
            information is forwarded by other applications.
            When a high level of security is requested, user-
            specific classification data that is found must be
            successfully installed before a user is given
            access to the switch. A low level of security
            means that a user will be given access to the
            switch even if the resources to install user-
            specific classification data are not currently
            available.

            Lastly, a value of 'ubpSupportEPMData(4)' will
            cause notifications to be generated for Enterprise 
            Policy Manager (EPM) consumption based on user
            information forwarded by other applications. 
            Notifications will be generated for events of
            interest to EPM, such as user addition/deletion
            that is associated with User Based Policy (UBP)
            support. Notifications will not be generated
            otherwise. Note that the information that is 
            necessary to construct and transmit a notification 
            must also be configured for this value to be
            useful.

            Changing the value of this attribute will cause
            UBP data currently in-use to be lost."

    ::= { ntnQosPolicyAgtClasses 8 }

ntnQosConfigRoleAssocCompatLevel OBJECT-TYPE
    SYNTAX         INTEGER {
                        roleAssocCompatLoose(1),
                        roleAssocCompatStrict(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "Determines whether interface role associations
            are subject to loose or strict capabilities
            verification. Setting the value of this attribute
            to 'roleAssocCompatLoose(1)' means that interfaces
            with different capabilities may be associated with
            the same role. In this case, configuration issues
            may arise due to these differences. Setting the
            value to 'roleAssocCompatStrict(2)' means that 
            only interfaces with compatible capabilities may
            be associated with the same role. This mode can
            be used to avoid configuration issues resulting
            from the interfaces assigned to a role not having
            the same underlying capabilities."

    ::= { ntnQosPolicyAgtClasses 9 }

ntnQosConfigDappEnable OBJECT-TYPE
    SYNTAX         INTEGER {
                        disable(1),
                        enableWithoutStatusTracking(2),
                        enableWithStatusTracking(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "Dictates whether the DoS Attack Prevention Package
            (DAPP) is enabled on all applicable ports and, when
            enabled, if resources will be allocated to track and 
            report on DoS attack detection.  If the attribute 
            value is 'disable(1)', DAPP support will be disabled.

            A value of 'enableWithoutStatusTracking(2)' will
            cause the DAPP support to be enabled on all ports 
            that are DAPP-capable. No resources will be allocated 
            to track the DoS attack detection status. No log 
            messages and no SNMP Traps will be generated based on 
            the DAPP support.

            A value of 'enableWithStatusTracking(3)' will cause 
            resources to be verified and consumed prior to enabling 
            DoS attack detection support on DAPP-capable ports. 
            Support will not be enabled if adequate resources are 
            not available. Assuming that resources are available, 
            log messages and SNMP Traps will be generated on a 
            per-unit basis when a DoS attack is identified by the 
            detection logic."

    ::= { ntnQosPolicyAgtClasses 10 }

ntnQosConfigDappMinTcpHdrSize OBJECT-TYPE
    SYNTAX         Integer32 (0..255)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "DAPP minimum TCP header length allowed. Used when
        performing TCP fragment validation. IPv4 TCP first
        fragment packets will be dropped if the TCP header
        (IP payload) is less than this value."

    ::= { ntnQosPolicyAgtClasses 11 }

ntnQosConfigDappIpv4IcmpMaxLength OBJECT-TYPE
    SYNTAX         Integer32 (0..1023)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "DAPP maximum IPv4 ICMP length. Used when performing
        ICMP validation. IPv4 ICMP packets will be dropped
        if the length (IP payload) exceeds this value."

    ::= { ntnQosPolicyAgtClasses 12 }

ntnQosConfigDappIpv6IcmpMaxLength OBJECT-TYPE
    SYNTAX         Integer32 (0..16383)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "DAPP maximum IPv6 ICMP length. Used when performing
        ICMP validation. IPv6 ICMP packets will be dropped
        if the length exceeds this value."

    ::= { ntnQosPolicyAgtClasses 13 }

ntnQosConfigNtApplicationMode OBJECT-TYPE
    SYNTAX         INTEGER {
                        disable(1),
                        enablePureMode(2),
                        enableMixedMode(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "Controls NT Application Mode processing. When enabled,
        identified NT application traffic will be given preferential
        treatment over non-NT application traffic. 'Mixed' mode
        processing will remove any special traffic markings at
        egress. 'Pure' mode processing will leave any special
        traffic markings intact at egress. Mode changes (updates
        to the value of this attribute) will take effect immediately."

    ::= { ntnQosPolicyAgtClasses 14 }

ntnQosConfigQosOperMode OBJECT-TYPE
    SYNTAX         INTEGER {
                        enable(1),
                        disable(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "Controls overall QoS processing for the system. When
        enabled, all QoS functionality can be exercised by the
        user. When disabled, installed QoS components are 
        temporarily removed (until the operational mode is
        re-enabled) and new requested QoS operations will be 
        rejected. The QoS operational mode can not be disabled 
        if QoS components are currently being used by non-QoS 
        applications. If disabled, requests related to QoS
        components by non-QoS applications will be rejected.
 
        Note that re-enabling the QoS operational mode may
        result in errors if changes have been made affecting
        available resources while QoS was temporarily disabled.
        Mode changes (updates to the value of this attribute) 
        will take effect immediately."

    ::= { ntnQosPolicyAgtClasses 15 }

ntnQosConfigTrustedProcessingMode OBJECT-TYPE
    SYNTAX         INTEGER {
                        partialDscpMapping(1),
                        fullDscpMapping(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "Controls filter usage related to Trusted interface
        class processing on platforms using filters to support
        treating traffic as trusted. A mode of 'partialDscpMapping(1)'
        causes filters to be installed that only support mapping of
        industry standard DSCP values. This is the default setting.
        A mode of 'fullDscpMapping(2)' causes filters to be installed
        mapping all possible DSCP values in support of Trusted
        interface class processing.

        A reset may be required for updates of this object to
        take effect."

    ::= { ntnQosPolicyAgtClasses 16 }

ntnQosConfigResetToPartialDefaults OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
            "Most installed QoS policy state information can 
            be deleted and reset to the device's default state 
            by setting the value of this object to 'true(1)'. 
            QoS data that requires a system reset to take effect 
            (e.g., ntnQosConfigDefaultQueueCfg) is not reset to 
            a default value using this object. The value 'false(2)' 
            will always be returned when querying this object."

    ::= { ntnQosPolicyAgtClasses 17 }

--
-- Quick Policies
--
-- The following objects are used to create 'Quick Policies'.  Their values
-- are not persistent, and do not reflect that current configuration settings
-- of the device.  Rather, their values are a sort of template that is used
-- to create a 'Quick Policy' when the control object is set.
--

ntnQosQuickPolicy OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 15 }

ntnQosQuickPolicyControl  OBJECT-TYPE
    SYNTAX         INTEGER {
                       none(1),
                       create(2),
                       delete(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object is used to create and delete quick policies.  Setting
         the value to create(2) will create a quick policy based on the
         current values of the other object in the ntnQosQuickPolicy group.
         Setting the value to delete(3) will delete the quick policy
         identified by the current value of ntnQosQuickPolicyId.  On
         retrieval, the value is always none(1)."
    ::= { ntnQosQuickPolicy 1 }

ntnQosQuickPolicyPortList OBJECT-TYPE
    SYNTAX         PortList
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object indicates the list of ports to which the quick policy
         will be applied."
    ::= { ntnQosQuickPolicy 2 }

ntnQosQuickPolicyAction OBJECT-TYPE
    SYNTAX         INTEGER {
                       forward(1),
                       pbits(2),
                       rate(3),
                       trtcm(4)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object indicates the main action of the quick-policy."
    ::= { ntnQosQuickPolicy 3 }

ntnQosQuickPolicyId  OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object indicates the ID of a policy to be deleted."
    ::= { ntnQosQuickPolicy 4 }

ntnQosQuickPolicyPbitsValue  OBJECT-TYPE
    SYNTAX         Integer32 (0..7)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The pbits value for creating a quick policy."
    ::= { ntnQosQuickPolicy 5 }

ntnQosQuickPolicyRate  OBJECT-TYPE
    SYNTAX         Integer32 (64..32000000)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The rate value of the simple meter associated with a quick policy."
    ::= { ntnQosQuickPolicy 6 }

ntnQosQuickPolicyTrTCMType  OBJECT-TYPE
    SYNTAX         INTEGER {
                       blind(1),
                       aware(2)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The type of a trtc quick policy.  This object is ignored if the
         value of ntnQosQuickPolicyAction is not trtcm(4)."
    ::= { ntnQosQuickPolicy 7 }

ntnQosQuickPolicyCIRRate  OBJECT-TYPE
    SYNTAX         Integer32 (64..32000000)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The CIR rate for creating a trtcm quick policy."
    ::= { ntnQosQuickPolicy 8 }

ntnQosQuickPolicyPIRRate  OBJECT-TYPE
    SYNTAX         Integer32 (64..32000000)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The PIR rate for creating a trtcm quick policy."
    ::= { ntnQosQuickPolicy 9 }

ntnQosQuickPolicyTrackQiQType  OBJECT-TYPE
    SYNTAX         INTEGER {
                       qinq1(1),
                       qinq2(2),
                       ignore(3)
                   }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The QinQ type for a quick policy."
    ::= { ntnQosQuickPolicy 10 }

ntnQosQuickPolicyDscp  OBJECT-TYPE
    SYNTAX         Dscp
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The DSCP codepoint for a quick policy."
    ::= { ntnQosQuickPolicy 11 }

ntnQosQuickPolicyPriority   OBJECT-TYPE
    SYNTAX         Integer32 (0..7)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The priority value for a quick policy."
    ::= { ntnQosQuickPolicy 12 }

ntnQosQuickPolicyVid  OBJECT-TYPE
    SYNTAX         VlanId
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The VLAN ID for a quick policy."
    ::= { ntnQosQuickPolicy 13 }

ntnQosQuickPolicyTPID  OBJECT-TYPE
    SYNTAX         Integer32 (1536..65534)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The TPID value for a quick policy."
    ::= { ntnQosQuickPolicy 14 }

ntnQosQuickPolicyIVid  OBJECT-TYPE
    SYNTAX         VlanId
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The IVID value or a quick policy."
    ::= { ntnQosQuickPolicy 15 }

ntnQosQuickPolicyITPID  OBJECT-TYPE
    SYNTAX         Integer32 (1536..65534)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The ITPID value for a quick policy."
    ::= { ntnQosQuickPolicy 16 }

ntnQosQuickPolicyIPriority  OBJECT-TYPE
    SYNTAX         Integer32 (0..7)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The I-priority value for a quick policy."
    ::= { ntnQosQuickPolicy 17 }

ntnQosQuickPolicyPrecedence  OBJECT-TYPE
    SYNTAX         Integer32 (1..15)
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The precedence value for a quick policy."
    ::= { ntnQosQuickPolicy 18 }

ntnQosQuickPolicyTrackStatistics  OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "Indicates whether statistics should be tracked for this quick policy."
    ::= { ntnQosQuickPolicy 19 }

--
-- Filter Limiting
--

ntnQosFilterLimiting OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibClasses 16 }

ntnQosFilterLimitingAdminEnabled  OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object indicates whether QoS filter limiting is administratively
         enabled.  Note that changes to this object are not applied to the
         operational state until the system is rebooted, so this value may
         differ from that of ntnQosFilterLimitingOperEnabled."
    ::= { ntnQosFilterLimiting 1 }

ntnQosFilterLimitingOperEnabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object indicates whether QoS filter limiting is currently
         enabled.  Note that this object will only change values (in response
         to changes to the value of ntnQosFilterLimitingOperEnabled) when the
         system is rebooted."
    ::= { ntnQosFilterLimiting 2 }

--
-- Notifications Section
--

ntnQosPolicyEvolLocalUbpSessionFailure NOTIFICATION-TYPE
    OBJECTS        {
                        ntnQosConfigUBPSupportLevel,
                        ntnQosUserPolicyIfIndex,
                        ntnQosUserPolicyUserName,
                        ntnQosUserPolicyUserGroup,
                        ntnQosUserPolicyRoleCombination
                   }
    STATUS         current
    DESCRIPTION
            "Signifies that filter data associated with a user
            could not be installed in the context of local UBP 
            support. The current UBP support level determines
            whether a User Policy element was created or not
            in this resource-exhaustion scenario."

    ::= { ntnQosPolicyEvolPibNotifications 1 }

ntnQosPolicyEvolDosAttackDetected NOTIFICATION-TYPE
    OBJECTS        {
                        bnIfExtnSlot,
                        bnIfExtnPort
                   }
    STATUS         current
    DESCRIPTION
            "Indicates that the DAPP support has detected
            an attack on the device generating this trap.
            A notification is generated once for each unit
            that contains ports on which an attack has been
            detected. In addition to the required slot and
            port data, additional ports on the unit that
            has experienced a DAPP-detected DoS attack may
            also be included in the trap." 

    ::= { ntnQosPolicyEvolPibNotifications 2 }

--
-- Conformance Section
--

ntnQosPolicyEvolPibCompliances
                OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibConformance 1 }
ntnQosPolicyEvolPibGroups
                OBJECT IDENTIFIER ::= { ntnQosPolicyEvolPibConformance 2 }

ntnQosPolicyEvolPibCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "Describes the requirements for conformance to the
            Nortel Networks QoS Policy Evolution PIB."

    MODULE  -- this module
    MANDATORY-GROUPS { ntnDsMultiFieldClfrGroup,
                       ntnClfrComponentGroup,
                       ntnQosBaseActionGroup,
                       ntnQosPolicyGroup,
                       ntnQosIfAssignmentGroup,
                       ntnQosIfQueueGroup,
                       ntnQosInterfaceRoleGroup,
                       ntnQosDscpToCosGroup,
                       ntnQosPrcSupportGroup,
                       ntnQosPolicyDeviceIdentGroup,
                       ntnQosAgentConfigGroup }

        OBJECT        ntnDsMultiFieldClfrAddrType  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrDstPrefixLength  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrSrcPrefixLength  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrFlowId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnDsMultiFieldClfrStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrIpFlags  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrTcpCtrlFlags  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnDsMultiFieldClfrIpv4Options  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrComponentLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrComponentStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnClfrComponentStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrComponentSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionDrop  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the deferredPass(3) enumeration."

        OBJECT        ntnQosBaseActionUpdateUserPriority  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionSetDropPrecedence  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionCopyToCpu  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionMirrorFrame  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionExtension  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosBaseActionStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosBaseActionSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyClassifierType  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyMeter  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyNonMatchAction  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyStats  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyStatsType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyInterfaceIndex
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosPolicyStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicySessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosPolicyVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfAssignmentRoleCombination  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfAssignmentQueueSet  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfAssignmentStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosIfAssignmentStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueSetId
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueIndex
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueDiscipline
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueDrainSize
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueAbsBandwidth
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueBandwidthAllocation
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueServiceOrder
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueSize
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosIfQueueStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosIfQueueStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosInterfaceRoleCapabilities
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosInterfaceRoleStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosInterfaceRoleStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosInterfaceRoleStatsTrackingType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosDscpToCosDscp  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosDscpToCosLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosDscpToCosStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosDscpToCosStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosDscpToCosNewDscp  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosInterfaceTypeGroup
        DESCRIPTION
            "The ntnQosInterfaceTypeGroup is mandatory if 
            the ntnQosInterfaceRoleGroup is not supported."

        OBJECT        ntnQosInterfaceTypeCapabilities
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosInterfaceTypeStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosInterfaceTypeStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosQsetPriAssignmentGroup
        DESCRIPTION
            "The ntnQosQsetPriAssignmentGroup is mandatory if 
            mapping 802.1 user priority values to queues is
            supported."

        OBJECT        ntnQosQsetPriAssignmentQset
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetPriAssignmentPri
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetPriAssignmentQueue
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetPriAssignmentStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosQsetPriAssignmentStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosQsetDscpAssignmentGroup
        DESCRIPTION
            "The ntnQosQsetDscpAssignmentGroup is mandatory 
            if mapping DSCP values to queues is supported."

        OBJECT        ntnQosQsetDscpAssignmentQset
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetDscpAssignmentDscp
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetDscpAssignmentQueue
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosQsetDscpAssignmentStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosQsetDscpAssignmentStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosShapingParamsGroup
        DESCRIPTION
            "The ntnQosShapingParamsGroup is mandatory if 
            shaping of flows is supported by the device." 

        OBJECT        ntnQosShapingParamsRate
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosShapingParamsBurstSize
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosShapingParamsQueueSize
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosShapingParamsStorageType
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosShapingParamsStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosShapingParamsLabel
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnL2MultiFieldClfrGroup
        DESCRIPTION
            "The ntnL2MultiFieldClfrGroup is mandatory if 
            classification of flows based on Layer 2 
            information is supported by the device." 

        OBJECT        ntnL2MultiFieldClfrDstAddrMask  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrSrcAddrMask  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrVlanTag  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnL2MultiFieldClfrStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrPktType  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrIvidMin  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnL2MultiFieldClfrIvidMax  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnSystemClfrGroup
        DESCRIPTION
            "The ntnSystemClfrGroup is optional."

        GROUP   ntnClfrBlockGroup
        DESCRIPTION
            "The ntnClfrBlockGroup is mandatory if unordered 
            lists of classifiers can be defined for flow
            classification by the device." 

        OBJECT        ntnClfrBlockMeter  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockAction  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnClfrBlockStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnClfrBlockPrecedence  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosMeterGroup
        DESCRIPTION
            "The ntnQosMeterGroup is mandatory if metering of 
            flows is supported by the device." 

        OBJECT        ntnQosMeterOutOfProfileStats  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosMeterLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosMeterStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosMeterStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosMeterSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosMeterVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosTBParamGroup
        DESCRIPTION
            "The ntnQosTBParamGroup is mandatory if metering
            of flows using a token bucket paradigm is supported 
            by the device." 

        OBJECT        ntnQosTBParamType  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamInterval  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamLabel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamStorage
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required, nor is
                     support for the nonVolatile(2) enumeration."

        OBJECT        ntnQosTBParamStatus  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamSessionId  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamVersion  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosTBParamMinRate  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosIfcActionGroup
        DESCRIPTION
            "The ntnQosIfcActionGroup is optional."

        GROUP   ntnQosCountActGroup
        DESCRIPTION
            "The ntnQosCountActionGroup is optional."

        GROUP   ntnQosFilterStatsGroup
        DESCRIPTION
            "The ntnQosFilterStatsGroup is optional."

        GROUP   ntnQosFilterSetStatsGroup
        DESCRIPTION
            "The ntnQosFilterSetStatsGroup is optional."

        GROUP   ntnQosPolicyDiagsGroup
        DESCRIPTION
            "The ntnQosPolicyDiagsGroup is optional."

        GROUP   ntnQosPolicyPrecResDiagsGroup
        DESCRIPTION
            "The ntnQosPolicyPrecResDiagsGroup is optional."

        GROUP   ntnQosCosToDscpGroup
        DESCRIPTION
            "The ntnQosCosToDscpGroup is optional."

        OBJECT        ntnQosConfigTrackStatistics  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigNVCommitDelay  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDefaultQueueCfg  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDefaultBufferingCaps  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigUBPSupportLevel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigRoleAssocCompatLevel  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDappEnable  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDappMinTcpHdrSize  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDappIpv4IcmpMaxLength  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigDappIpv6IcmpMaxLength  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigNtApplicationMode  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigQosOperMode  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigTrustedProcessingMode  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        ntnQosConfigResetToPartialDefaults  
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        GROUP   ntnQosUserRoleGroup
        DESCRIPTION
            "The ntnQosUserRoleGroup is optional."

        GROUP   ntnQosIfShapingGroup
        DESCRIPTION
            "The ntnQosIfShapingGroup is optional."

        GROUP   ntnQosCosShapingGroup
        DESCRIPTION
            "The ntnQosCosShapingGroup is optional."

        GROUP   ntnQosQueueShapingGroup
        DESCRIPTION
            "The ntnQosQueueShapingGroup is optional."

        GROUP   ntnQosDsAccessElemGroup
        DESCRIPTION
            "The ntnQosDsAccessElemGroup is optional."

        GROUP   ntnQosL2AccessElemGroup
        DESCRIPTION
            "The ntnQosL2AccessElemGroup is optional."

        GROUP   ntnQosAccessAsgnGroup
        DESCRIPTION
            "The ntnQosAccessAsgnGroup is optional."

        GROUP   ntnQosIfAppsGroup
        DESCRIPTION
            "The ntnQosIfAppsGroup is optional."

        GROUP   ntnQosUserPolicyGroup
        DESCRIPTION
            "The ntnQosUserPolicyGroup is optional."

        GROUP   ntnQosDsL2AccessElemGroup
        DESCRIPTION
            "The ntnQosDsL2AccessElemGroup is optional."

    ::= { ntnQosPolicyEvolPibCompliances 2 }

ntnQosInterfaceTypeGroup OBJECT-GROUP
    OBJECTS {
             ntnQosInterfaceTypeRoles,
             ntnQosInterfaceTypeIfClass,
             ntnQosInterfaceTypeCapabilities,
             ntnQosInterfaceTypeStorageType,
             ntnQosInterfaceTypeStatus,
             ntnQosInterfaceTypeNextFree
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosInterfaceTypeExtTable."

    ::= { ntnQosPolicyEvolPibGroups 1 }

ntnQosQsetPriAssignmentGroup OBJECT-GROUP
    OBJECTS {
             ntnQosQsetPriAssignmentQset,
             ntnQosQsetPriAssignmentPri,
             ntnQosQsetPriAssignmentQueue,
             ntnQosQsetPriAssignmentStorageType,
             ntnQosQsetPriAssignmentStatus
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosQsetPriAssignmentTable."

    ::= { ntnQosPolicyEvolPibGroups 2 }

ntnQosQsetDscpAssignmentGroup OBJECT-GROUP
    OBJECTS {
             ntnQosQsetDscpAssignmentQset,
             ntnQosQsetDscpAssignmentDscp,
             ntnQosQsetDscpAssignmentQueue,
             ntnQosQsetDscpAssignmentStorageType,
             ntnQosQsetDscpAssignmentStatus
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosQsetDscpAssignmentTable."

    ::= { ntnQosPolicyEvolPibGroups 3 }

ntnQosShapingParamsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosShapingParamsRate,
             ntnQosShapingParamsBurstSize,
             ntnQosShapingParamsQueueSize,
             ntnQosShapingParamsStorageType,
             ntnQosShapingParamsStatus,
             ntnQosShapingParamsLabel
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosShapingParamsTable."

    ::= { ntnQosPolicyEvolPibGroups 4 }

ntnDsMultiFieldClfrGroup OBJECT-GROUP
    OBJECTS {
             ntnDsMultiFieldClfrNextFree,
             ntnDsMultiFieldClfrAddrType,
             ntnDsMultiFieldClfrDstAddr,
             ntnDsMultiFieldClfrDstPrefixLength,
             ntnDsMultiFieldClfrSrcAddr,
             ntnDsMultiFieldClfrSrcPrefixLength,
             ntnDsMultiFieldClfrDscp,
             ntnDsMultiFieldClfrFlowId,
             ntnDsMultiFieldClfrProtocol,
             ntnDsMultiFieldClfrDstL4PortMin,
             ntnDsMultiFieldClfrDstL4PortMax,
             ntnDsMultiFieldClfrSrcL4PortMin,
             ntnDsMultiFieldClfrSrcL4PortMax,
             ntnDsMultiFieldClfrStorage,
             ntnDsMultiFieldClfrStatus,
             ntnDsMultiFieldClfrLabel,
             ntnDsMultiFieldClfrSessionId,
             ntnDsMultiFieldClfrVersion,
             ntnDsMultiFieldClfrIpFlags,
             ntnDsMultiFieldClfrTcpCtrlFlags,
             ntnDsMultiFieldClfrIpv4Options
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnDsMultiFieldClfrTable."

    ::= { ntnQosPolicyEvolPibGroups 5 }

ntnL2MultiFieldClfrGroup OBJECT-GROUP
    OBJECTS {
             ntnL2MultiFieldClfrNextFree,
             ntnL2MultiFieldClfrDstAddr,
             ntnL2MultiFieldClfrDstAddrMask,
             ntnL2MultiFieldClfrSrcAddr,
             ntnL2MultiFieldClfrSrcAddrMask,
             ntnL2MultiFieldClfrVlanIdMin,
             ntnL2MultiFieldClfrVlanIdMax,
             ntnL2MultiFieldClfrVlanTag,
             ntnL2MultiFieldClfrEtherType,
             ntnL2MultiFieldClfrUserPriority,
             ntnL2MultiFieldClfrStorage,
             ntnL2MultiFieldClfrStatus,
             ntnL2MultiFieldClfrLabel,
             ntnL2MultiFieldClfrSessionId,
             ntnL2MultiFieldClfrVersion,
             ntnL2MultiFieldClfrPktType,
             ntnL2MultiFieldClfrIvidMin,
             ntnL2MultiFieldClfrIvidMax
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnL2MultiFieldClfrTable."

    ::= { ntnQosPolicyEvolPibGroups 6 }

ntnSystemClfrGroup OBJECT-GROUP
    OBJECTS {
             ntnSystemClfrNextFree,
             ntnSystemClfrUnknownUcastFrames,
             ntnSystemClfrUnknownMcastFrames,
             ntnSystemClfrKnownUcastFrames,
             ntnSystemClfrKnownMcastFrames,
             ntnSystemClfrBcastFrames,
             ntnSystemClfrPatternPosition,
             ntnSystemClfrPatternData,
             ntnSystemClfrStorage,
             ntnSystemClfrStatus,
             ntnSystemClfrPatternFormat, 
             ntnSystemClfrLabel,
             ntnSystemClfrSessionId, 
             ntnSystemClfrVersion, 
             ntnSystemClfrUnknownIpMcast, 
             ntnSystemClfrKnownIpMcast, 
             ntnSystemClfrNonIpPkt,
             ntnSystemClfrPatternIpVersion, 
             ntnSystemClfrUnknownNonIpMcast, 
             ntnSystemClfrKnownNonIpMcast,
             ntnSystemClfrPatternL2Format 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnSystemClfrTable."

    ::= { ntnQosPolicyEvolPibGroups 7 }

ntnClfrComponentGroup OBJECT-GROUP
    OBJECTS {
             ntnClfrComponentNextFree,
             ntnClfrComponentSpecific,
             ntnClfrComponentSetId,
             ntnClfrComponentLabel,
             ntnClfrComponentStorage,
             ntnClfrComponentStatus, 
             ntnClfrComponentSessionId, 
             ntnClfrComponentSetNextFree
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnClfrComponentTable."

    ::= { ntnQosPolicyEvolPibGroups 8 }

ntnClfrBlockGroup OBJECT-GROUP
    OBJECTS {
             ntnClfrBlockNextFree,
             ntnClfrBlockNumber,
             ntnClfrBlockClfrCompSetId,
             ntnClfrBlockMeter,
             ntnClfrBlockAction,
             ntnClfrBlockLabel,
             ntnClfrBlockStorage,
             ntnClfrBlockStatus, 
             ntnClfrBlockSessionId, 
             ntnClfrBlockNumberNextFree,
             ntnClfrBlockVersion,
             ntnClfrBlockPrecedence
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnClfrBlockTable."

    ::= { ntnQosPolicyEvolPibGroups 9 }

ntnQosMeterGroup OBJECT-GROUP
    OBJECTS {
             ntnQosMeterNextFree,
             ntnQosMeterSucceedNext,
             ntnQosMeterFailNext,
             ntnQosMeterSpecific,
             ntnQosMeterOutOfProfileStats,
             ntnQosMeterLabel,
             ntnQosMeterStorage,
             ntnQosMeterStatus,
             ntnQosMeterSessionId, 
             ntnQosMeterVersion 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosMeterTable."

    ::= { ntnQosPolicyEvolPibGroups 10 }

ntnQosTBParamGroup OBJECT-GROUP
    OBJECTS {
             ntnQosTBParamNextFree,
             ntnQosTBParamType,
             ntnQosTBParamRate,
             ntnQosTBParamBurstSize,
             ntnQosTBParamInterval,
             ntnQosTBParamLabel,
             ntnQosTBParamStorage,
             ntnQosTBParamStatus,
             ntnQosTBParamSessionId, 
             ntnQosTBParamVersion, 
             ntnQosTBParamMinRate 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosTBParamTable."

    ::= { ntnQosPolicyEvolPibGroups 11 }

ntnQosBaseActionGroup OBJECT-GROUP
    OBJECTS {
             ntnQosBaseActionNextFree,
             ntnQosBaseActionDrop,
             ntnQosBaseActionUpdateDscp,
             ntnQosBaseActionUpdateUserPriority,
             ntnQosBaseActionSetDropPrecedence,
             ntnQosBaseActionCopyToCpu,
             ntnQosBaseActionMirrorFrame,
             ntnQosBaseActionExtension,
             ntnQosBaseActionLabel,
             ntnQosBaseActionStorage,
             ntnQosBaseActionStatus,
             ntnQosBaseActionSessionId 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosBaseActionTable."

    ::= { ntnQosPolicyEvolPibGroups 12 }

ntnQosIfcActionGroup OBJECT-GROUP
    OBJECTS {
             ntnQosIfcActionNextFree,
             ntnQosIfcActionUpdateVlanId,
             ntnQosIfcActionSetEgressMask,
             ntnQosIfcActionSetEgressUcastIfc,
             ntnQosIfcActionSetEgressNUcastIfc,
             ntnQosIfcActionExtension,
             ntnQosIfcActionLabel,
             ntnQosIfcActionStorage,
             ntnQosIfcActionStatus,
             ntnQosIfcActionSessionId 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosIfcActionTable."

    ::= { ntnQosPolicyEvolPibGroups 13 }

ntnQosPolicyGroup OBJECT-GROUP
    OBJECTS {
             ntnQosPolicyNextFree,
             ntnQosPolicyClassifierType,
             ntnQosPolicyClassifierId,
             ntnQosPolicyInterfaceRoles,
             ntnQosPolicyPrecedence,
             ntnQosPolicyMeter,
             ntnQosPolicyAction,
             ntnQosPolicyNonMatchAction,
             ntnQosPolicyLabel,
             ntnQosPolicyStorage,
             ntnQosPolicyStatus,
             ntnQosPolicyStats,
             ntnQosPolicyStatsType,
             ntnQosPolicyInterfaceIndex,
             ntnQosPolicySessionId,
             ntnQosPolicyVersion
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosPolicyTable."

    ::= { ntnQosPolicyEvolPibGroups 14 }

ntnQosCountActGroup OBJECT-GROUP
    OBJECTS {
             ntnQosCountActNextFree,
             ntnQosCountActOctets,
             ntnQosCountActPkts,
             ntnQosCountActStorage,
             ntnQosCountActStatus,
             ntnQosCountActSessionId 
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnCountActTable."

    ::= { ntnQosPolicyEvolPibGroups 15 }

ntnQosFilterStatsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosFilterStatsInProfileOctets,
             ntnQosFilterStatsInProfilePkts,
             ntnQosFilterStatsOutOfProfileOctets,
             ntnQosFilterStatsOutOfProfilePkts,
             ntnQosFilterStatsStorage,
             ntnQosFilterStatsStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosFilterStatsTable."

    ::= { ntnQosPolicyEvolPibGroups 16 }

ntnQosPolicyDiagsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosPolicyDiagsMasksConsumed,
             ntnQosPolicyDiagsFiltersConsumed,
             ntnQosPolicyDiagsMetersConsumed,
             ntnQosPolicyDiagsNonQosMasksConsumed,
             ntnQosPolicyDiagsNonQosFiltersConsumed,
             ntnQosPolicyDiagsNonQosMetersConsumed, 
             ntnQosPolicyDiagsCountersConsumed, 
             ntnQosPolicyDiagsTotalMasksAvail,
             ntnQosPolicyDiagsTotalFiltersAvail,
             ntnQosPolicyDiagsTotalMetersAvail, 
             ntnQosPolicyDiagsTotalCountersAvail 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosPolicyDiagsTable."

    ::= { ntnQosPolicyEvolPibGroups 17 }

ntnQosIfAssignmentGroup OBJECT-GROUP
    OBJECTS {
             ntnQosIfAssignmentRoleCombination,
             ntnQosIfAssignmentQueueSet,
             ntnQosIfAssignmentStorage,
             ntnQosIfAssignmentStatus,
             ntnQosIfAssignmentCapabilities 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosIfAssignmentTable."

    ::= { ntnQosPolicyEvolPibGroups 18 }

ntnQosIfQueueGroup OBJECT-GROUP
    OBJECTS {
             ntnQosIfQueueSetId,
             ntnQosIfQueueIndex,
             ntnQosIfQueueDiscipline,
             ntnQosIfQueueDrainSize,
             ntnQosIfQueueAbsBandwidth,
             ntnQosIfQueueBandwidthAllocation,
             ntnQosIfQueueServiceOrder,
             ntnQosIfQueueSize,
             ntnQosIfQueueStorage,
             ntnQosIfQueueStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosIfQueueTable."

    ::= { ntnQosPolicyEvolPibGroups 19 }

ntnQosDscpToCosGroup OBJECT-GROUP
    OBJECTS {
             ntnQosDscpToCosDscp,
             ntnQosDscpToCosCos,
             ntnQosDscpToCosDropPrec,
             ntnQosDscpToCosLabel,
             ntnQosDscpToCosStorage,
             ntnQosDscpToCosStatus,
             ntnQosDscpToCosNewDscp
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosDscpToCosTable."

    ::= { ntnQosPolicyEvolPibGroups 20 }

ntnQosCosToDscpGroup OBJECT-GROUP
    OBJECTS {
             ntnQosCosToDscpCos,
             ntnQosCosToDscpDscp,
             ntnQosCosToDscpLabel,
             ntnQosCosToDscpStorage,
             ntnQosCosToDscpStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosCosToDscpTable."

    ::= { ntnQosPolicyEvolPibGroups 21 }

ntnQosPrcSupportGroup OBJECT-GROUP
    OBJECTS {
             ntnQosPrcSupportSupportedPrc,
             ntnQosPrcSupportSupportedAttrs,
             ntnQosPrcSupportMaxPris,
             ntnQosPrcSupportCurrentPris
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosPrcSupportTable."

    ::= { ntnQosPolicyEvolPibGroups 22 }

ntnQosPolicyDeviceIdentGroup OBJECT-GROUP
    OBJECTS {
             ntnQosPolicyDeviceIdentDescr,
             ntnQosPolicyDeviceIdentMaxMsg
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosPolicyDeviceIdentTable."

    ::= { ntnQosPolicyEvolPibGroups 23 }

ntnQosAgentConfigGroup OBJECT-GROUP
    OBJECTS {
             ntnQosConfigResetToDefaults,
             ntnQosConfigTrackStatistics,
             ntnQosConfigNVCommitDelay,
             ntnQosConfigDefaultQueueCfg,
             ntnQosConfigDefaultBufferingCaps,
             ntnQosConfigUBPSupportLevel,
             ntnQosConfigRoleAssocCompatLevel,
             ntnQosConfigDappEnable,
             ntnQosConfigDappMinTcpHdrSize, 
             ntnQosConfigDappIpv4IcmpMaxLength, 
             ntnQosConfigDappIpv6IcmpMaxLength,
             ntnQosConfigNtApplicationMode,
             ntnQosConfigQosOperMode,
             ntnQosConfigTrustedProcessingMode,
             ntnQosConfigResetToPartialDefaults
    }
    STATUS  current
    DESCRIPTION
            "Objects used for QoS Policy Agent 
            configuration."

    ::= { ntnQosPolicyEvolPibGroups 24 }

ntnQosInterfaceRoleGroup OBJECT-GROUP
    OBJECTS {
             ntnQosInterfaceRoleRole,
             ntnQosInterfaceRoleIfClass,
             ntnQosInterfaceRoleCapabilities,
             ntnQosInterfaceRoleStorageType,
             ntnQosInterfaceRoleStatus,
             ntnQosInterfaceRoleStatsTrackingType,
             ntnQosInterfaceRoleNextFree
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosInterfaceRoleTable."

    ::= { ntnQosPolicyEvolPibGroups 25 }

ntnQosUserRoleGroup OBJECT-GROUP
    OBJECTS {
             ntnQosUserRoleRoleCombination,
             ntnQosUserRoleUserName,
             ntnQosUserRoleUserGroup,
             ntnQosUserRoleSessionId,
             ntnQosUserRoleSessionStart,
             ntnQosUserRoleSessionGroup,
             ntnQosUserRoleStorage,
             ntnQosUserRoleStatus
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosUserRoleTable."

    ::= { ntnQosPolicyEvolPibGroups 26 }

ntnQosIfShapingGroup OBJECT-GROUP
    OBJECTS {
             ntnQosIfShapingSpecific,
             ntnQosIfShapingLabel,
             ntnQosIfShapingStorage,
             ntnQosIfShapingStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosIfShapingTable."

    ::= { ntnQosPolicyEvolPibGroups 27 }

ntnQosDsAccessElemGroup OBJECT-GROUP
    OBJECTS {
             ntnQosDsAccessElemNextFree,
             ntnQosDsAccessElemAddrType,
             ntnQosDsAccessElemDstAddr,
             ntnQosDsAccessElemDstPrefixLength,
             ntnQosDsAccessElemSrcAddr,
             ntnQosDsAccessElemSrcPrefixLength,
             ntnQosDsAccessElemDscp,
             ntnQosDsAccessElemFlowId,
             ntnQosDsAccessElemProtocol,
             ntnQosDsAccessElemDstL4PortMin,
             ntnQosDsAccessElemDstL4PortMax,
             ntnQosDsAccessElemSrcL4PortMin,
             ntnQosDsAccessElemSrcL4PortMax,
             ntnQosDsAccessElemActionDrop,
             ntnQosDsAccessElemActionRemarkDscp,
             ntnQosDsAccessElemActionRemarkCos,
             ntnQosDsAccessElemActionSetPrec,
             ntnQosDsAccessElemName,
             ntnQosDsAccessElemBlock,
             ntnQosDsAccessElemType,
             ntnQosDsAccessElemStorage,
             ntnQosDsAccessElemStatus,
             ntnQosDsAccessElemEvalPrec
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosDsAccessElemTable."

    ::= { ntnQosPolicyEvolPibGroups 28 }

ntnQosL2AccessElemGroup OBJECT-GROUP
    OBJECTS {
             ntnQosL2AccessElemNextFree,
             ntnQosL2AccessElemDstAddr,
             ntnQosL2AccessElemDstAddrMask,
             ntnQosL2AccessElemSrcAddr,
             ntnQosL2AccessElemSrcAddrMask,
             ntnQosL2AccessElemVlanIdMin,
             ntnQosL2AccessElemVlanIdMax,
             ntnQosL2AccessElemVlanTag,
             ntnQosL2AccessElemEtherType,
             ntnQosL2AccessElemUserPriority,
             ntnQosL2AccessElemActionDrop,
             ntnQosL2AccessElemActionRemarkDscp,
             ntnQosL2AccessElemActionRemarkCos,
             ntnQosL2AccessElemActionSetPrec,
             ntnQosL2AccessElemName,
             ntnQosL2AccessElemBlock,
             ntnQosL2AccessElemType,
             ntnQosL2AccessElemStorage,
             ntnQosL2AccessElemStatus,
             ntnQosL2AccessElemEvalPrec
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosL2AccessElemTable."

    ::= { ntnQosPolicyEvolPibGroups 29 }

ntnQosAccessAsgnGroup OBJECT-GROUP
    OBJECTS {
             ntnQosAccessAsgnNextFree,
             ntnQosAccessAsgnAclType,
             ntnQosAccessAsgnName,
             ntnQosAccessAsgnIfIndex,
             ntnQosAccessAsgnRate,
             ntnQosAccessAsgnBurstSize,
             ntnQosAccessAsgnOutActionDrop,
             ntnQosAccessAsgnOutActionRemarkDscp,
             ntnQosAccessAsgnOutActionRemarkCos,
             ntnQosAccessAsgnOutActionSetPrec,
             ntnQosAccessAsgnStatsType,
             ntnQosAccessAsgnStorage,
             ntnQosAccessAsgnStatus,
             ntnQosAccessAsgnNonMatchActionDrop,
             ntnQosAccessAsgnMeterType,
             ntnQosAccessAsgnSecondaryRate,
             ntnQosAccessAsgnSecondaryBurstSize,
             ntnQosAccessAsgnYelActionDrop,
             ntnQosAccessAsgnYelActionRemarkDscp,
             ntnQosAccessAsgnYelActionRemarkCos,
             ntnQosAccessAsgnYelActionSetPrec,
             ntnQosAccessAsgnSetPriority,
             ntnQosAccessAsgnMeteringMode
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosAccessAsgnTable."

    ::= { ntnQosPolicyEvolPibGroups 30 }

ntnQosIfAppsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosIfAppsAppEnable,
             ntnQosIfAppsDefaultGateway,
             ntnQosIfAppsIfType,
             ntnQosIfAppsDHCPServer,
             ntnQosIfAppsStorage,
             ntnQosIfAppsStatus
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosIfAppsTable."

    ::= { ntnQosPolicyEvolPibGroups 31 }

ntnQosUserPolicyGroup OBJECT-GROUP
    OBJECTS {
             ntnQosUserPolicyNextFree,
             ntnQosUserPolicyIfIndex,
             ntnQosUserPolicyRoleCombination,
             ntnQosUserPolicyUserName,
             ntnQosUserPolicyUserGroup,
             ntnQosUserPolicySessionId,
             ntnQosUserPolicySessionStart,
             ntnQosUserPolicySessionGroup,
             ntnQosUserPolicyStorage,
             ntnQosUserPolicyStatus,
             ntnQosUserPolicySrcMacAddr,
             ntnQosUserPolicySrcMacAddrMask
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosUserPolicyTable."

    ::= { ntnQosPolicyEvolPibGroups 32 }

ntnQosDsL2AccessElemGroup OBJECT-GROUP
    OBJECTS {
             ntnQosDsL2AccessElemNextFree,
             ntnQosDsL2AccessElemAddrType,
             ntnQosDsL2AccessElemDstIpAddr,
             ntnQosDsL2AccessElemDstIpPrefixLength,
             ntnQosDsL2AccessElemSrcIpAddr,
             ntnQosDsL2AccessElemSrcIpPrefixLength,
             ntnQosDsL2AccessElemDscp,
             ntnQosDsL2AccessElemFlowId,
             ntnQosDsL2AccessElemProtocol,
             ntnQosDsL2AccessElemDstL4PortMin,
             ntnQosDsL2AccessElemDstL4PortMax,
             ntnQosDsL2AccessElemSrcL4PortMin,
             ntnQosDsL2AccessElemSrcL4PortMax,
             ntnQosDsL2AccessElemDstMacAddr,
             ntnQosDsL2AccessElemDstMacAddrMask,
             ntnQosDsL2AccessElemSrcMacAddr,
             ntnQosDsL2AccessElemSrcMacAddrMask,
             ntnQosDsL2AccessElemVlanIdMin,
             ntnQosDsL2AccessElemVlanIdMax,
             ntnQosDsL2AccessElemVlanTag,
             ntnQosDsL2AccessElemEtherType,
             ntnQosDsL2AccessElemUserPriority,
             ntnQosDsL2AccessElemActionDrop,
             ntnQosDsL2AccessElemActionRemarkDscp,
             ntnQosDsL2AccessElemActionRemarkCos,
             ntnQosDsL2AccessElemActionSetPrec,
             ntnQosDsL2AccessElemName,
             ntnQosDsL2AccessElemBlock,
             ntnQosDsL2AccessElemType,
             ntnQosDsL2AccessElemStorage,
             ntnQosDsL2AccessElemStatus,
             ntnQosDsL2AccessElemEvalPrec,
             ntnQosDsL2AccessElemIpFlags,
             ntnQosDsL2AccessElemTcpCtrlFlags,
             ntnQosDsL2AccessElemIpv4Options,
             ntnQosDsL2AccessElemPktType,
             ntnQosDsL2AccessElemIvidMin,
             ntnQosDsL2AccessElemIvidMax,
             ntnQosDsL2AccessElemUnknownUcastFrames,
             ntnQosDsL2AccessElemUnknownMcastFrames,
             ntnQosDsL2AccessElemKnownUcastFrames,
             ntnQosDsL2AccessElemKnownMcastFrames,
             ntnQosDsL2AccessElemBcastFrames,
             ntnQosDsL2AccessElemUnknownIpMcast,
             ntnQosDsL2AccessElemKnownIpMcast,
             ntnQosDsL2AccessElemNonIpPkt,
             ntnQosDsL2AccessElemVersion,
             ntnQosDsL2AccessElemUnknownNonIpMcast,
             ntnQosDsL2AccessElemKnownNonIpMcast,
             ntnQosDsL2AccessElemMasterBlockMember,
             ntnQosDsL2AccessElemMeterType,
             ntnQosDsL2AccessElemRate,
             ntnQosDsL2AccessElemBurstSize,
             ntnQosDsL2AccessElemOutActionDrop,
             ntnQosDsL2AccessElemOutActionRemarkDscp,
             ntnQosDsL2AccessElemOutActionRemarkCos,
             ntnQosDsL2AccessElemOutActionSetPrec,
             ntnQosDsL2AccessElemSecondaryRate,
             ntnQosDsL2AccessElemSecondaryBurstSize,
             ntnQosDsL2AccessElemYelActionDrop,
             ntnQosDsL2AccessElemYelActionRemarkDscp,
             ntnQosDsL2AccessElemYelActionRemarkCos,
             ntnQosDsL2AccessElemYelActionSetPrec
    }
    STATUS  current
    DESCRIPTION
            "Objects supporting and from the 
            ntnQosDsL2AccessElemTable."

    ::= { ntnQosPolicyEvolPibGroups 33 }

ntnQosCosShapingGroup OBJECT-GROUP
    OBJECTS {
             ntnQosCosShapingSpecific,
             ntnQosCosShapingLabel,
             ntnQosCosShapingStorage,
             ntnQosCosShapingStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosCosShapingTable."

    ::= { ntnQosPolicyEvolPibGroups 34 }

ntnQosPolicyPrecResDiagsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosPolicyPrecResDiagsKeysConsumed,
             ntnQosPolicyPrecResDiagsFiltersConsumed,
             ntnQosPolicyPrecResDiagsMetersConsumed,
             ntnQosPolicyPrecResDiagsNonQosKeysConsumed,
             ntnQosPolicyPrecResDiagsNonQosFiltersConsumed,
             ntnQosPolicyPrecResDiagsNonQosMetersConsumed, 
             ntnQosPolicyPrecResDiagsCountersConsumed, 
             ntnQosPolicyPrecResDiagsTotalKeysAvail,
             ntnQosPolicyPrecResDiagsTotalFiltersAvail,
             ntnQosPolicyPrecResDiagsTotalMetersAvail, 
             ntnQosPolicyPrecResDiagsTotalCountersAvail,
             ntnQosPolicyPrecResDiagsRangeChkElemsConsumed,
             ntnQosPolicyPrecResDiagsApplicationIdUsed,
             ntnQosPolicyPrecResDiagsApplicationNameUsed
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosPolicyPrecResDiagsTable."

    ::= { ntnQosPolicyEvolPibGroups 35 }

ntnQosQueueShapingGroup OBJECT-GROUP
    OBJECTS {
             ntnQosQueueShapingSpecific,
             ntnQosQueueShapingLabel,
             ntnQosQueueShapingStorage,
             ntnQosQueueShapingStatus 
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosQueueShapingTable."

    ::= { ntnQosPolicyEvolPibGroups 36 }

ntnQosFilterSetStatsGroup OBJECT-GROUP
    OBJECTS {
             ntnQosFilterSetStatsInProfileOctets,
             ntnQosFilterSetStatsInProfilePkts,
             ntnQosFilterSetStatsOutOfProfileOctets,
             ntnQosFilterSetStatsOutOfProfilePkts,
             ntnQosFilterSetStatsAccessElemId,
             ntnQosFilterSetStatsStorage,
             ntnQosFilterSetStatsStatus
    }
    STATUS  current
    DESCRIPTION
            "Objects from the ntnQosFilterSetStatsTable."

    ::= { ntnQosPolicyEvolPibGroups 37 }

END

