-- *****************************************************************
-- CISCO-SUBSCRIBER-SESSION-MIB
-- Definitions of managed objects describing subscriber sessions.
--   
-- September 2007, Patrick R. Gili
--   
-- Copyright (c) 2007, 2012 by Cisco Systems Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-SUBSCRIBER-SESSION-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    NOTIFICATION-TYPE,
    OBJECT-TYPE,
    Counter64,
    Gauge32,
    Unsigned32,
    Integer32,
    Counter32
        FROM SNMPv2-SMI
    OBJECT-GROUP,
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    DateAndTime,
    MacAddress,
    RowStatus,
    StorageType,
    TimeStamp,
    TruthValue,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    PerfCurrentCount,
    PerfIntervalCount,
    PerfTotalCount
        FROM PerfHist-TC-MIB
    PhysicalIndex
        FROM ENTITY-MIB
    InterfaceIndex,
    ifIndex
        FROM IF-MIB
    DynamicTemplateName
        FROM CISCO-DYNAMIC-TEMPLATE-TC-MIB
    SubSessionType,
    SubSessionState,
    SubSessionRedundancyMode
        FROM CISCO-SUBSCRIBER-SESSION-TC-MIB
    SubSessionIdentity,
    SubSessionIdentities,
    SubscriberLabel,
    SubscriberPbhk,
    SubscriberVRF,
    SubscriberRemoteId,
    SubscriberCircuitId,
    SubscriberNasPort,
    SubscriberUsername,
    SubscriberAcctSessionId,
    SubscriberDomain,
    SubscriberDnis,
    SubscriberMediaType,
    SubscriberProtocolType,
    SubscriberDhcpClass,
    SubscriberTunnelName,
    SubscriberLocationName,
    SubscriberServiceName
        FROM CISCO-SUBSCRIBER-IDENTITY-TC-MIB
    CbpElementName
        FROM CISCO-CBP-TC-MIB
    ciscoMgmt
        FROM CISCO-SMI;


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

            Postal:  170 W Tasman Drive
            San Jose, CA 95134

            Tel:  +1 800 553-NETS

            E-mail:  cs-snmp@cisco.com"
    DESCRIPTION
        "This MIB defines objects describing subscriber sessions, or
        more specifically, subscriber sessions terminated by a RAS.  A
        subscriber session consists of the traffic between a CPE and a
        NAS, as illustrated in the diagram below.

                                           Service
                           Access          Provider
                           Network         Network
        +--+  +---+  +--+   {   }   +---+   {   }
        |PC+--+CPE+--+AN+--{     }--+NAS+--{     }
        +--+  +---+  +--+   {   }   +---+   {   }
                  |                 |
                  |<--------------->|
                       subscriber
                        session

        A subscriber session behaves according to the FSM illustrated
        below.

              +-----------------+
         +--->|  DISCONNECTED   |<-------+
         |    +--------+--------+        |
         |             |                 |
         | failed      | initiated       | disconnect
         |             V                 |
         |    +-----------------+        |
         +----+     PENDING     +--------+
              +--------+--------+        |
                       |                 |
                       | established     |
                       V                 |
        +----------------------------+   |
        |             UP             |   |
        |                            +---+
        |  +-----------------+       |
        |  | UNAUTHENTICATED |       |
        |  +--------+--------+       |
        |           |                |
        |           | authenticated  |
        |           V                |
        |  +-----------------+       |
        |  |  AUTHENTICATED  |       |
        |  +-----------------+       |
        |                            |
        +----------------------------+

        A subscriber session in the DISCONNECTED state technically
        doesn't exist; that is, the system does not maintain a context
        to describe a disconnected subscriber session.

        Once the system detects the initiation of a subscriber session,
        then it creates a context and places the subscriber session in
        the PENDING state.  The initiation of a subscriber session can
        occur either through provisioning or the reception of a packet.
        In the PENDING state, a system does not forward subscriber
        traffic.

        A pending subscriber session can become DISCONNECTED if
        it fails to come up (e.g., a timeout) or if the system or the
        subscriber explicitly terminates the subscriber session.

        A pending subscriber session can become UP if the system
        successfully configures and applies any relevant policies.
        Once in the UP state, a system forwards subscriber traffic.

        A operationally UP subscriber session can become DISCONNECTED if
        either system or the subscriber terminates it.

        A operationally UP subscriber session can either be
        UNAUTHENTICATED or AUTHENTICATED.  When the system is in the
        process of checking a the credentials associated with a
        subscriber session, it is in the UNAUTHENTICATED state.  When
        the system successfully completes this process, it transitions
        the subscriber session to the AUTHENTICATED state.  If the
        process fails, then the system terminates the subscriber
        session.

        Besides describing individual subscriber sessions, this MIB
        module provides an EMS/NMS with the means to perform the
        following functions:

        1)  Enumerate subscriber sessions by ifIndex.

        2)  Enumerate subscriber sessions by subscriber session type and
            ifIndex.

        3)  Monitor aggregated statistics relating to subscriber
            sessions:

            a.  System-wide
            b.  System-wide by subscriber session type
            c.  Per node
            d.  Per node by subscriber session type

        4)  Collect 15-minute aggregated performance data history
            relating to subscriber sessions:

            a.  System-wide
            b.  System-wide by subscriber session type
            c.  Per node
            d.  Per node by subscriber session type

        5)  Submit a query for a report containing those subscriber
            sessions that match a specified identity match criteria.

        6)  Terminate those subscriber session that match a
            specified identify match criteria.

        GLOSSARY
        ========

        Access Concentrator
            See NAS.

        Access Network
            The network that provides connectivity between a AN and NAS.
            An access network may provide L2 or L3 connectivity. If the
            access network provide L2 connectivity, it may switch
            traffic or tunnel it through a MPLS or IP network.

        AN (Access Node)
            A device (e.g., a DSLAM) that multiplexes or switches
            traffic between many CPEs and an access network.

        BRAS (Broadband Remote Access Server)
            See NAS.

        CPE (Customer Premise Equipment)
            A device (e.g., a DSL modem) that connects a customer's
            network to an AN.

        DHCP (Dynamic Host Configuration Protocol)
            The protocol that provides a framework for transacting
            configuration information to devices on an IP network, as
            specified by RFC-2131.

        NAS (Network Access Server)
            A device that switches or routes traffic between subscriber
            sessions and service provider networks.

        Network Service
            Access to the Internet backbone, voice, video, or other
            content.

        Node
            A physical entity capable of maintaining a subscriber
            session within a distributed system.  The notion of a node
            is not applicable to a centralized system.

        PADI (PPPoE Active Discovery Initiation)
            A subscriber broadcasts a PADI packet to start the process
            of discovering access concentrators capable of serving it.

        PADO (PPPoE Active Discovery Offer)
            The packet sent by an access concentrator to a subscriber
            indicating that it can serve the subscriber.

        PADR (PPPoE Active Discovery Request)
            The packet sent by a subscriber to an access concentrator
            requesting a PPPoE connection.

        PADS (PPPoE Active Discovery Session-confirmation)
            The packet sent by an access concentrator to a subscriber
            confirming the request for a PPPoE connection.  Once this
            packet has been sent, then the PPP can proceed as specified
            by RFC-1661.

        PADT (PPPoE Active Discovery Terminate)
            The packet indicating that a PPPoE connection has been
            terminated.  Either the subscriber or the access
            concentrator can send this packet.

        PPP (Point-to-Point Protocol)
            The standard method for transporting multi-protocol
            datagrams over point-to-point links, as defined by RFC-1661.
            The PPP specifies the encapsulation for these datagrams and
            the protocols necessary for establishing, configuring, and
            maintaining connectivity.

        PPPoE (Point-to-Point Protocol over Ethernet)
            The protocol and encapsulation necessary to support a PPP
            connection over an Ethernet connection, as defined by IETF
            RFC-2516.

        Service Provider Network
            The network that provides connectivity between a NAS and a
            network service.

        Subscriber
            A customer of a network service.

        Subscriber Session
            A context maintained by a NAS for the purpose of classifying
            a subscriber's traffic, maintaining a subscriber's identity,
            applying configuration and policies, and maintaining
            statistics.  For more information on the types of subscriber
            sessions, see the CISCO-SUBSCRIBER-SESSION-TC-MIB."
    REVISION        "201208080000Z"
    DESCRIPTION
        "csubAggStatsThreshTable , csubAggStatsThreshGroup,
        csubAggStatsNotifGroup are newly added"
    REVISION        "201203120000Z"
    DESCRIPTION
        "SubscriberLoationName corrected to SubscriberLocationName"
    REVISION        "201109120000Z"
    DESCRIPTION
        "The initial version of the MIB module."
    ::= { ciscoMgmt 786 }



-- Textual Conventions

SubscriberJobIdentifier ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An arbitrary positive, integer-value uniquely identifying a
        subscriber session job."
    SYNTAX          Unsigned32 (1..4294967295)

SubscriberJobIdentifierOrZero ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention serves as an extension of the
        SubscriberJobIdentifier textual convention, which permits the
        value '0'.  The use of the value '0' is specific to an object,
        thus requiring the descriptive text associated with the object
        to describe the semantics of its use."
    SYNTAX          Unsigned32 (0..4294967295)
-- Top-Level Trees

ciscoSubscriberSessionMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIB 0 }

ciscoSubscriberSessionMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIB 1 }

ciscoSubscriberSessionMIBConform  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIB 2 }

-- Object Sub-trees

csubSession  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBObjects 1 }

csubAggStats  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBObjects 2 }

csubJob  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBObjects 3 }

csubAggThresh  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBObjects 4 }

-- Objects

csubSessionTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubSessionEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table describes a list of subscriber sessions currently
        maintained by the system.

        This table has a sparse dependent relationship on the ifTable,
        containing a row for each interface having an interface type
        describing a subscriber session."
    ::= { csubSession 1 }

csubSessionEntry OBJECT-TYPE
    SYNTAX          CsubSessionEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This entry contains data describing a subscriber sessions,
        including its state, configuration, and collected identities.

        An entry exists for a corresponding entry in the ifTable
        describing a subscriber session.  Currently, subscriber
        sessions must have one of the following ifType values:

            'ppp'
            'ipSubscriberSession'
            'l2SubscriberSession'

        The system creates an entry when it establishes a subscriber
        session.  Likewise, the system destroys an entry when it
        terminates the corresponding subscriber session."
    INDEX           { ifIndex } 
    ::= { csubSessionTable 1 }

CsubSessionEntry ::= SEQUENCE {
        csubSessionType                SubSessionType,
        csubSessionIpAddrAssignment    INTEGER,
        csubSessionState               SubSessionState,
        csubSessionAuthenticated       TruthValue,
        csubSessionRedundancyMode      SubSessionRedundancyMode,
        csubSessionCreationTime        DateAndTime,
        csubSessionDerivedCfg          DynamicTemplateName,
        csubSessionAvailableIdentities SubSessionIdentities,
        csubSessionSubscriberLabel     SubscriberLabel,
        csubSessionMacAddress          MacAddress,
        csubSessionNativeVrf           SubscriberVRF,
        csubSessionNativeIpAddrType    InetAddressType,
        csubSessionNativeIpAddr        InetAddress,
        csubSessionNativeIpMask        InetAddress,
        csubSessionDomainVrf           SubscriberVRF,
        csubSessionDomainIpAddrType    InetAddressType,
        csubSessionDomainIpAddr        InetAddress,
        csubSessionDomainIpMask        InetAddress,
        csubSessionPbhk                SubscriberPbhk,
        csubSessionRemoteId            SubscriberRemoteId,
        csubSessionCircuitId           SubscriberCircuitId,
        csubSessionNasPort             SubscriberNasPort,
        csubSessionDomain              SubscriberDomain,
        csubSessionUsername            SubscriberUsername,
        csubSessionAcctSessionId       SubscriberAcctSessionId,
        csubSessionDnis                SubscriberDnis,
        csubSessionMedia               SubscriberMediaType,
        csubSessionMlpNegotiated       TruthValue,
        csubSessionProtocol            SubscriberProtocolType,
        csubSessionDhcpClass           SubscriberDhcpClass,
        csubSessionTunnelName          SubscriberTunnelName,
        csubSessionLocationIdentifier  SubscriberLocationName,
        csubSessionServiceIdentifier   SubscriberServiceName,
        csubSessionLastChanged         DateAndTime,
        csubSessionNativeIpAddrType2   InetAddressType,
        csubSessionNativeIpAddr2       InetAddress,
        csubSessionNativeIpMask2       InetAddress
}

csubSessionType OBJECT-TYPE
    SYNTAX          SubSessionType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of subscriber session." 
    ::= { csubSessionEntry 1 }

csubSessionIpAddrAssignment OBJECT-TYPE
    SYNTAX          INTEGER  {
                        none(1),
                        other(2),
                        static(3),
                        localPool(4),
                        dhcpv4(5),
                        dhcpv6(6),
                        userProfileIpAddr(7),
                        userProfileIpSubnet(8),
                        userProfileNamedPool(9)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates how the system assigns IP addresses to
        the subscriber:

            'none'
                The system does not an involvement in (or is it aware
                of) the assignment an subscriber IP addresses.  For
                example, a system does not have an involvement in the
                assignment of subscriber IP addresses for IP interface
                subscriber sessions.

            'other'
                The system assigns subscriber IP addresses using a
                method not recognized by this MIB module.

            'static'
                Subscriber IP addresses have been configured correctly
                for the service domain.  The system does not have an
                involvement in the assignment of the IP address.

            'localPool'
                The system assigns subscriber IP addresses from a
                locally configured pool of IP addresses.

            'dhcpv4'
                The system assigns subscriber IP addresses are using the
                DHCPv4.

            'dhcpv6'
                The system assigns subscriber IP addresses using the
                DHCPv6.

            'userProfileIpAddr'
                The system assigns subscriber IP addresses from a user
                profile.

            'userProfileIpSubnet'
                The system assigns the subscriber an IP subnet from a
                user profile.

            'userProfileNamedPool'
                The system assigns subscriber IP addresses from a
                locally configured named pool specified by a user
                profile." 
    ::= { csubSessionEntry 2 }

csubSessionState OBJECT-TYPE
    SYNTAX          SubSessionState
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the operational state of the subscriber
        session." 
    ::= { csubSessionEntry 3 }

csubSessionAuthenticated OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates whether the system has successfully
        authenticated the subscriber session.

            'false'
                The subscriber session is operationally up, but in the
                UNAUTHENTICATED state.

            'true'
                The subscriber session is operationally up, but in the
                AUTHENTICATED state." 
    ::= { csubSessionEntry 4 }

csubSessionRedundancyMode OBJECT-TYPE
    SYNTAX          SubSessionRedundancyMode
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the redundancy mode in which the
        subscriber session is operating." 
    ::= { csubSessionEntry 5 }

csubSessionCreationTime OBJECT-TYPE
    SYNTAX          DateAndTime
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates when the subscriber session was created
        (i.e., when the subscriber session was initiated)." 
    ::= { csubSessionEntry 6 }

csubSessionDerivedCfg OBJECT-TYPE
    SYNTAX          DynamicTemplateName
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the row in the cdtTemplateTable (defined
        by the CISCO-DYNAMIC-TEMPLATE-MIB) describing the derived
        configuration for the subscriber session.

        Observe that the value of cdtTemplateType corresponding to the
        referenced row must be 'derived'." 
    ::= { csubSessionEntry 7 }

csubSessionAvailableIdentities OBJECT-TYPE
    SYNTAX          SubSessionIdentities
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the subscriber identities that the system
        has successfully collected for the subscriber session.

        Each bit in this bit string corresponds to a column in this
        table.  If the bit is '0', then the value of the corresponding
        column is invalid.  If the bit is '1', then the value of the
        corresponding column represents the value of the subscriber
        identity collected by the system.

        The following list specifies the mappings between the bits and
        the columns:

            'subscriberLabel' => csubSessionSubscriberLabel
            'macAddress'      => csubSessionMacAddress
            'nativeVrf'       => csubSessionNativeVrf
            'nativeIpAddress' => csubSessionNativeIpAddrType,
                                 csubSessionNativeIpAddr,
                                 csubSessionNativeIpMask
            'nativeIpAddress2'=> csubSessionNativeIpAddrType2,
                                 csubSessionNativeIpAddr2,
                                 csubSessionNativeIpMask2                                 
            'domainVrf'       => csubSessionDomainVrf
            'domainIpAddress' => csubSessionDomainIpAddrType,
                                 csubSessionDomainIpAddr,
                                 csubSessionDomainIpMask
            'pbhk'            => csubSessionPbhk
            'remoteId'        => csubSessionRemoteId
            'circuitId'       => csubSessionCircuitId
            'nasPort'         => csubSessionNasPort
            'domain'          => csubSessionDomain
            'username'        => csubSessionUsername
            'acctSessionId'   => csubSessionAcctSessionId
            'dnis'            => csubSessionDnis
            'media'           => csubSessionMedia
            'mlpNegotiated'   => csubSessionMlpNegotiated
            'protocol'        => csubSessionProtocol
            'dhcpClass'       => csubSessionDhcpClass
            'tunnelName'      => csubSessionTunnelName

        Observe that the bit 'ifIndex' should always be '1'.  This
        identity maps to the ifIndex assigned to the subscriber
        session.

        Observe that the bit 'serviceName' maps to one or more instance
        of ccbptPolicyMap (defined by the CISCO-CBP-TARGET-MIB)." 
    ::= { csubSessionEntry 8 }

csubSessionSubscriberLabel OBJECT-TYPE
    SYNTAX          SubscriberLabel
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates a positive integer-value uniquely
        identifying the subscriber session within the scope of
        the system.

        This column is valid only if the 'subscriberLabel' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 9 }

csubSessionMacAddress OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the MAC address of the subscriber.

        This column is valid only if the 'macAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 10 }

csubSessionNativeVrf OBJECT-TYPE
    SYNTAX          SubscriberVRF
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the VRF originating the subscriber
        session.

        This column is valid only if the 'nativeVrf' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 11 }

csubSessionNativeIpAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of IP address assigned to the
        subscriber on the customer-facing side of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 12 }

csubSessionNativeIpAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the IP address assigned to the
        subscriber on the customer-facing side of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 13 }

csubSessionNativeIpMask OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the corresponding mask for the IP
        address assigned to the subscriber on the customer-facing side
        of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 14 }

csubSessionDomainVrf OBJECT-TYPE
    SYNTAX          SubscriberVRF
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the VRF to which the system transfers
        the subscriber session's traffic.

        This column is valid only if the 'domainVrf' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 15 }

csubSessionDomainIpAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of IP address assigned to the
        subscriber on the service-facing side of the system.

        This column is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 16 }

csubSessionDomainIpAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the IP address assigned to the
        subscriber on the service-facing side of the system.

        This column is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 17 }

csubSessionDomainIpMask OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the corresponding mask for the IP
        address assigned to the subscriber on the service-facing side of
        the system.

        This column is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 18 }

csubSessionPbhk OBJECT-TYPE
    SYNTAX          SubscriberPbhk
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the PBHK identifying the subscriber.

        This column is valid only if the 'pbhk' bit of the corresponding
        instance of csubSessionAvailableIdentities is '1'." 
    ::= { csubSessionEntry 19 }

csubSessionRemoteId OBJECT-TYPE
    SYNTAX          SubscriberRemoteId
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the Remote-Id identifying the 'calling
        station' or AN supporting the circuit that provides access to
        the subscriber.

        This column is valid only if the 'remoteId' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 20 }

csubSessionCircuitId OBJECT-TYPE
    SYNTAX          SubscriberCircuitId
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the Circuit-Id identifying the circuit
        supported by the 'calling station' or AN providing access to
        the subscriber.

        This column is valid only if the 'circuitId' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 21 }

csubSessionNasPort OBJECT-TYPE
    SYNTAX          SubscriberNasPort
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the NAS port-identifier identifying the
        port on the NAS providing access to the subscriber.

        This column is valid only if the 'nasPort' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 22 }

csubSessionDomain OBJECT-TYPE
    SYNTAX          SubscriberDomain
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the domain associated with the
        subscriber.

        This column is valid only if the 'domain' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 23 }

csubSessionUsername OBJECT-TYPE
    SYNTAX          SubscriberUsername
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the username identifying the subscriber.

        This column is valid only if the 'username' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 24 }

csubSessionAcctSessionId OBJECT-TYPE
    SYNTAX          SubscriberAcctSessionId
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the accounting session identifier
        assigned to the subscriber session.

        This column is valid only if the 'accountingSid' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 25 }

csubSessionDnis OBJECT-TYPE
    SYNTAX          SubscriberDnis
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the DNIS number dialed by the
        subscriber to access the 'calling station' or AN.

        This column is valid only if the 'dnis' bit of the corresponding
        instance of csubSessionAvailableIdentities is '1'." 
    ::= { csubSessionEntry 26 }

csubSessionMedia OBJECT-TYPE
    SYNTAX          SubscriberMediaType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of media providing access to
        the subscriber.

        This column is valid only if the 'media' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 27 }

csubSessionMlpNegotiated OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates whether the subscriber session was
        established using multi-link PPP negotiation.

        This column is valid only if the 'mlpNegotiated' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 28 }

csubSessionProtocol OBJECT-TYPE
    SYNTAX          SubscriberProtocolType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of protocol providing access to
        the subscriber.

        This column is valid only if the 'protocol' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 29 }

csubSessionDhcpClass OBJECT-TYPE
    SYNTAX          SubscriberDhcpClass
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the name of the class matching the DHCP
        DISCOVER message received from the subscriber.

        This column is valid only if the 'dhcpClass' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 30 }

csubSessionTunnelName OBJECT-TYPE
    SYNTAX          SubscriberTunnelName
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the name of the VPDN used to carry the
        subscriber session to the system.

        This column is valid only if the 'tunnelName' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 31 }

csubSessionLocationIdentifier OBJECT-TYPE
    SYNTAX          SubscriberLocationName
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the location of the
        subscriber" 
    ::= { csubSessionEntry 32 }

csubSessionServiceIdentifier OBJECT-TYPE
    SYNTAX          SubscriberServiceName
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the name used to identify the services
        subscribed by a particular session." 
    ::= { csubSessionEntry 33 }

csubSessionLastChanged OBJECT-TYPE
    SYNTAX          DateAndTime
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates when the subscriber session is updated
        with new policy information." 
    ::= { csubSessionEntry 34 }

csubSessionNativeIpAddrType2 OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of IP address assigned to the
        subscriber on the customer-facing side of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'.

        In Dual stack scenarios both 'csubSessionNativeIpAddrType' and 
        'csubSessionNativeIpAddrType2' will be valid" 
    ::= { csubSessionEntry 35 }

csubSessionNativeIpAddr2 OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the IP address assigned to the
        subscriber on the customer-facing side of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 36 }

csubSessionNativeIpMask2 OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the corresponding mask for the IP
        address assigned to the subscriber on the customer-facing side
        of the system.

        This column is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubSessionAvailableIdentities is
        '1'." 
    ::= { csubSessionEntry 37 }
 


csubSessionByTypeTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubSessionByTypeEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table describes a list of subscriber sessions currently
        maintained by the system.  The tables sorts the subscriber
        sessions first by the subscriber session's type and second by
        the ifIndex assigned to the subscriber session."
    ::= { csubSession 2 }

csubSessionByTypeEntry OBJECT-TYPE
    SYNTAX          CsubSessionByTypeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This entry identifies a subscriber session.

        An entry exists for a corresponding entry in the ifTable
        describing a subscriber session.  Currently, subscriber
        sessions must have one of the following ifType values:

            'ppp'
            'ipSubscriberSession'
            'l2SubscriberSession'

        The system creates an entry when it establishes a subscriber
        session.  Likewise, the system destroys an entry when it
        terminates the corresponding subscriber session."
    INDEX           {
                        csubSessionByType,
                        csubSessionIfIndex
                    } 
    ::= { csubSessionByTypeTable 1 }

CsubSessionByTypeEntry ::= SEQUENCE {
        csubSessionByType  SubSessionType,
        csubSessionIfIndex InterfaceIndex
}

csubSessionByType OBJECT-TYPE
    SYNTAX          SubSessionType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of the subscriber session." 
    ::= { csubSessionByTypeEntry 1 }

csubSessionIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the ifIndex assigned to the subscriber
        session." 
    ::= { csubSessionByTypeEntry 2 }
 


csubAggStatsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubAggStatsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains sets of aggregated statistics relating to
        subscriber sessions, where each set has a unique scope of
        aggregation."
    ::= { csubAggStats 1 }

csubAggStatsEntry OBJECT-TYPE
    SYNTAX          CsubAggStatsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry contains a set of aggregated statistics relating to
        those subscriber sessions that fall into a 'scope of 
        aggregation'. 

        A 'scope of aggregation' is the set of subscriber sessions 
        that meet specified criteria.  For example, a 'scope of 
        aggregation' may be the set of all PPPoE subscriber sessions 
        maintained by the system.  The following criteria define the 
        'scope of aggregation': 

        1)  Aggregation Point type 
                Aggregation point type identifies the format of the 
                csubAggStatsPoint for this entry. 

        2)  Aggregation Point 
                'Physical' Aggregation Point type case: 
                In a distributed system, a 'node' represents a physical 
                entity capable of maintaining the context representing 
                a subscriber session. 

                If the 'scope of aggregation' specifies a physical 
                entity having an entPhysicalClass of 'chassis', then 
                the set of subscriber sessions in the 'scope of 
                aggregation' may contain the subscriber sessions maintained by all 
                the nodes contained in the system. 

                If the 'scope of aggregation' specifies a physical 
                entity having an entPhysicalClass of 'module' (e.g., a 
                line card), then the set of subscriber sessions in the 
                'scope of aggregation' may contain the subscriber 
                sessions maintained by the nodes contained by the 
                module. 

                If the 'scope of aggregation' specifies a physical 
                entity having an entPhysicalClass of 'cpu', then the 
                set of subscriber sessions in the 'scope of aggregation' 
                may contain the subscriber sessions maintained by the node 
                running on that processor. 

                Observe that a centralized system (i.e., a system 
                that essentially contains a single node) can only 
                support a 'scope of aggregation' that specifies a 
                physical entity classified as a 'chassis'. 

                If the scope of aggregation specifies 'interface', 
                then the scope is the set of subscriber sessions carried 
                by the interface identified the ifIndex value 
                represented in the csubAggStatsPoint value. 

        2)  Subscriber Session Type 
                If the 'scope of aggregation' specifies the value 'all' 
                for the subscriber session type, then the set of 
                subscriber sessions in the 'scope of aggregation' may 
                contain all subscriber sessions, regardless of type. 

                If the 'scope of aggregation' specifies a value other 
                than 'all' for the subscriber session type, then the 
                set of subscriber sessions in the 'scope of aggregation may 
                contain only those subscriber sessions of the specified 
                type. 

        Implementation Guidance 
        ======================= 
        A system MUST maintain a set of statistics with a 'scope of 
        aggregation' that contains all subscriber sessions maintained 
        by the system.  The system creates this entry during the 
        initialization of the SNMP entity. 

        A system SHOULD maintain a set of statistics for each 'scope of 
        aggregation' containing subscriber sessions of each subscriber 
        session type the system is capable of providing access.  If the 
        system supports these sets of statistics, then it creates these 
        entries during the initialization of the SNMP entity. 

        A system MAY maintain sets of node-specific statistics.  if the 
        system supports sets of node-specific statistics, then it 
        creates the appropriate entries upon detection of a physical 
        entity (resulting from system restart or insertion) containing 
        those nodes.  Likewise, the system destroys these entries 
        upon removal of the physical entity."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB (Version 3)',
        RFC-4133, August 2005."
    INDEX           {
                        csubAggStatsPointType,
                        csubAggStatsPoint,
                        csubAggStatsSessionType
                    } 
    ::= { csubAggStatsTable 1 }

CsubAggStatsEntry ::= SEQUENCE {
        csubAggStatsPointType                INTEGER,
        csubAggStatsPoint                    Unsigned32,
        csubAggStatsSessionType              SubSessionType,
        csubAggStatsPendingSessions          Gauge32,
        csubAggStatsUpSessions               Gauge32,
        csubAggStatsAuthSessions             Gauge32,
        csubAggStatsUnAuthSessions           Gauge32,
        csubAggStatsLightWeightSessions      Gauge32,
        csubAggStatsRedSessions              Gauge32,
        csubAggStatsHighUpSessions           Gauge32,
        csubAggStatsAvgSessionUptime         Gauge32,
        csubAggStatsAvgSessionRPM            Gauge32,
        csubAggStatsAvgSessionRPH            Gauge32,
        csubAggStatsThrottleEngagements      Counter64,
        csubAggStatsTotalCreatedSessions     Counter64,
        csubAggStatsTotalFailedSessions      Counter64,
        csubAggStatsTotalUpSessions          Counter64,
        csubAggStatsTotalAuthSessions        Counter64,
        csubAggStatsTotalDiscSessions        Counter64,
        csubAggStatsTotalLightWeightSessions Counter64,
        csubAggStatsTotalFlowsUp             Counter64,
        csubAggStatsDayCreatedSessions       PerfTotalCount,
        csubAggStatsDayFailedSessions        PerfTotalCount,
        csubAggStatsDayUpSessions            PerfTotalCount,
        csubAggStatsDayAuthSessions          PerfTotalCount,
        csubAggStatsDayDiscSessions          PerfTotalCount,
        csubAggStatsCurrTimeElapsed          Gauge32,
        csubAggStatsCurrValidIntervals       Gauge32,
        csubAggStatsCurrInvalidIntervals     Gauge32,
        csubAggStatsCurrFlowsUp              Gauge32,
        csubAggStatsCurrCreatedSessions      PerfCurrentCount,
        csubAggStatsCurrFailedSessions       PerfCurrentCount,
        csubAggStatsCurrUpSessions           PerfCurrentCount,
        csubAggStatsCurrAuthSessions         PerfCurrentCount,
        csubAggStatsCurrDiscSessions         PerfCurrentCount,
        csubAggStatsDiscontinuityTime        DateAndTime
}

csubAggStatsPointType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        physical(1),
                        interface(2)
                    }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates format of the csubAggStatsPoint
        for this entry. 

        The format for the csubAggStatsPoint is as follows: 

        csubAggStatsPointType      csubAggStatsPoint 
        ----------------------     ------------------ 
            'physical'                 PhysicalIndex 
            'interface'                InterfaceIndex" 
    ::= { csubAggStatsEntry 1 }

csubAggStatsPoint OBJECT-TYPE
    SYNTAX          Unsigned32 (1..'FFFFFFFF'H)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object should be read with csubAggStatsPointType always.

        This object indicates one of the determining factors affecting 
        the 'scope of aggregation' for the set of statistics contained 
        by the row. 

        The value indicated by this object should be interpreted as the 
        identifier for the point type specific base table. 

        For point types of 'physical', the type specific base table is 
        the entPhysicalTable and this value is a PhysicalIndex.  For 
        point types of 'interface', the type specific base table is 
        the ifTable and this value is an InterfaceIndex. 

        If this column indicates a physical entity which has an 
        entPhysicalClass of 'chassis', then the 'scope of aggregation' 
        may includes those subscriber sessions maintained by all nodes 
        contained by the system. 

        If this column indicates a physical entity which has an 
        entPhysicalClass of  'module' (e.g., a line card), then the 
        'scope of aggregation' may include those subscriber sessions 
        maintained by the nodes contained by the module. 

        If this column indicates a physical entity which has an 
        entPhysicalClass of 'cpu', then the 'scope of aggregation' may 
        include those subscriber sessions maintained by the node 
        running on the processor. 

        Aggregation points with entPhysicalTable / ifTable overlap: 
        For interfaces which map directly to physical 'port' class 
        entities in the entPhysicalTable, the preferred representation 
        as aggregation points is the 'physical' point type and 
        PhysicalIndex identifier."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB (Version 3)',
        RFC-4133, August 2005." 
    ::= { csubAggStatsEntry 2 }

csubAggStatsSessionType OBJECT-TYPE
    SYNTAX          SubSessionType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates one of the determining factors affecting
        the 'scope of aggregation' for the statistics contained by the
        row.

        If the value of this column is 'all', then the 'scope of
        aggregation' may include all subscriber sessions, regardless of
        type.

        If the value of this column is not 'all', then the 'scope of
        aggregation' may include subscriber sessions of the indicated
        subscriber session type." 
    ::= { csubAggStatsEntry 3 }

csubAggStatsPendingSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber sessions
        within the 'scope of aggregation' that are in the PENDING
        state." 
    ::= { csubAggStatsEntry 4 }

csubAggStatsUpSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber sessions
        within the 'scope of aggregation' that are in the UP state." 
    ::= { csubAggStatsEntry 5 }

csubAggStatsAuthSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber session
        within the 'scope of aggregation' that have been authenticated." 
    ::= { csubAggStatsEntry 6 }

csubAggStatsUnAuthSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber session
        within the 'scope of aggregation' that have not been authenticated." 
    ::= { csubAggStatsEntry 7 }

csubAggStatsLightWeightSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber
        sessions within the 'scope of aggregation' that are less resource intensive." 
    ::= { csubAggStatsEntry 8 }

csubAggStatsRedSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of subscriber sessions
        within the 'scope of aggregation' that are redundant (i.e., 
        sessions with a csubSessionRedundancyMode of 'standby')." 
    ::= { csubAggStatsEntry 9 }

csubAggStatsHighUpSessions OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the highest number of subscriber sessions
        within the 'scope of aggregation' observed simultaneously in the UP
        state since the last discontinuity time." 
    ::= { csubAggStatsEntry 10 }

csubAggStatsAvgSessionUptime OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the average time subscriber sessions
        within the 'scope of aggregation' spent in the UP state.

        The system calculates this average over all subscriber
        sessions maintained by all nodes contained by the 'scope of
        aggregation' since the last discontinuity time." 
    ::= { csubAggStatsEntry 11 }

csubAggStatsAvgSessionRPM OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions per minute"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the average rate (per minute) at which
        the nodes contained by the 'scope of aggregation' have
        established new subscriber sessions." 
    ::= { csubAggStatsEntry 12 }

csubAggStatsAvgSessionRPH OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "sessions per hour"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the average rate (per hour) at which the
        nodes contained by the 'scope of aggregation' have established new
        subscriber sessions." 
    ::= { csubAggStatsEntry 13 }

csubAggStatsThrottleEngagements OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "engagements"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of times that nodes contained
        within the 'scope of aggregation' have engaged the subscriber
        session throttle since the last discontinuity time.

        The mechanics of a subscriber session throttle vary with
        subscriber session type and implementation.  However, the
        general concept of the throttle prevents a node from having
        to deal with more than a configured number of requests to
        establish subscriber sessions from the same CPE within the a
        configured interval of time.  When the number of requests
        exceeds the configured threshold within the configured interval,
        then the node processing the requests engages the throttle.
        Typically, when a node engages a throttle, it drops requests
        from the CPE for some period of time, after which the node
        disengages the throttle.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime." 
    ::= { csubAggStatsEntry 14 }

csubAggStatsTotalCreatedSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' created since the
        discontinuity time.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime." 
    ::= { csubAggStatsEntry 15 }

csubAggStatsTotalFailedSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that were in the PENDING state
        and terminated for reasons other than disconnect since the last
        discontinuity time.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime." 
    ::= { csubAggStatsEntry 16 }

csubAggStatsTotalUpSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned to the UP
        state since the last discontinuity time.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime" 
    ::= { csubAggStatsEntry 17 }

csubAggStatsTotalAuthSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned from the
        UNAUTHENTICATED to the AUTHENTICATED state since the last
        discontinuity time.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime" 
    ::= { csubAggStatsEntry 18 }

csubAggStatsTotalDiscSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        terminated due to a disconnect event since the last
        discontinuity time.

        Discontinuities in the value of this counter can occur at
        re-initialization of the management system, and at other times
        as indicated by the value of csubAggStatsDiscontinuityTime" 
    ::= { csubAggStatsEntry 19 }

csubAggStatsTotalLightWeightSessions OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        that are less resource intensive" 
    ::= { csubAggStatsEntry 20 }

csubAggStatsTotalFlowsUp OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of differential traffic classes
        on subscriber sessions. IP ACLs are used to create differential flows(Traffic Classes). 
        Each Traffic Class can have a different set of features applied." 
    ::= { csubAggStatsEntry 21 }

csubAggStatsDayCreatedSessions OBJECT-TYPE
    SYNTAX          PerfTotalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' created during the last 24
        hours.

        The system calculates the value of this column by summing the
        values of all instances of csubAggStatsIntCreatedSessions that
        expand this row and have a corresponding csubAggStatsIntValid of
        'true'." 
    ::= { csubAggStatsEntry 22 }

csubAggStatsDayFailedSessions OBJECT-TYPE
    SYNTAX          PerfTotalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that were in the PENDING state
        and terminated for reasons other than disconnect during the
        last 24 hours.

        The system calculates the value of this column by summing the
        values of all instances of csubAggStatsIntFailedSessions that
        expand this row and have a corresponding csubAggStatsIntValid
        of 'true'." 
    ::= { csubAggStatsEntry 23 }

csubAggStatsDayUpSessions OBJECT-TYPE
    SYNTAX          PerfTotalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned to the UP
        state during the last 24 hours.

        The system calculates the value of this column by summing the
        values of all instances of csubAggStatsIntUpSessions that
        expand this row and have a corresponding csubAggStatsIntValid
        of 'true'." 
    ::= { csubAggStatsEntry 24 }

csubAggStatsDayAuthSessions OBJECT-TYPE
    SYNTAX          PerfTotalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned from the
        UNAUTHENTICATED to the AUTHENTICATED state during the last 24
        hours.

        The system calculates the value of this column by summing the
        values of all instances of csubAggStatsIntAuthSessions that
        expand this row and have a corresponding csubAggStatsIntValid of
        'true'." 
    ::= { csubAggStatsEntry 25 }

csubAggStatsDayDiscSessions OBJECT-TYPE
    SYNTAX          PerfTotalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        terminated due to a disconnect event during the last 24 hours.

        The system calculates the value of this column by summing the
        values of all instances of csubAggStatsIntDiscSessions that
        expand this row and have a corresponding csubAggStatsIntValid of
        'true'." 
    ::= { csubAggStatsEntry 26 }

csubAggStatsCurrTimeElapsed OBJECT-TYPE
    SYNTAX          Gauge32 (0..899)
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the time that has elapsed since the
        beginning of the current 15-minute measurement interval.  If,
        for some reason, such as an adjustment in the system's
        time-of-day clock, the current interval exceeds the maximum
        value, then the value of this column will be the maximum value." 
    ::= { csubAggStatsEntry 27 }

csubAggStatsCurrValidIntervals OBJECT-TYPE
    SYNTAX          Gauge32 (0..96)
    UNITS           "intervals"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of intervals for which data
        was collected.  The value of this column will be '96' unless the
        measurement was started (or restarted) within 1,440 minutes, in
        which case the value will be the number of complete 15-minute
        intervals for which the system has at least some data.

        In certain cases it is possible that some intervals are
        unavailable, in which case the value of this column will
        be maximum interval number for which data is available." 
    ::= { csubAggStatsEntry 28 }

csubAggStatsCurrInvalidIntervals OBJECT-TYPE
    SYNTAX          Gauge32 (0..96)
    UNITS           "intervals"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of intervals in the range
        from 0 to csubCurrValidIntervals for which no data is
        available.  This object will typically be '0' except in certain
        circumstances when some intervals are unavailable." 
    ::= { csubAggStatsEntry 29 }

csubAggStatsCurrFlowsUp OBJECT-TYPE
    SYNTAX          Gauge32 (0..96)
    UNITS           "intervals"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current number of differential traffic classes
        on subscriber sessions currently UP. IP ACLs are used to create differential flows
        (Traffic Classes).Each Traffic Class can have a different set of features applied." 
    ::= { csubAggStatsEntry 30 }

csubAggStatsCurrCreatedSessions OBJECT-TYPE
    SYNTAX          PerfCurrentCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' created during the current
        15-minute interval." 
    ::= { csubAggStatsEntry 31 }

csubAggStatsCurrFailedSessions OBJECT-TYPE
    SYNTAX          PerfCurrentCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that were in the PENDING state
        and terminated for reasons other than disconnect during the
        current 15-minute interval." 
    ::= { csubAggStatsEntry 32 }

csubAggStatsCurrUpSessions OBJECT-TYPE
    SYNTAX          PerfCurrentCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned to the UP
        state during the current 15-minute interval." 
    ::= { csubAggStatsEntry 33 }

csubAggStatsCurrAuthSessions OBJECT-TYPE
    SYNTAX          PerfCurrentCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned from the
        UNAUTHENTICATED to the AUTHENTICATED state during the current
        15-minute interval." 
    ::= { csubAggStatsEntry 34 }

csubAggStatsCurrDiscSessions OBJECT-TYPE
    SYNTAX          PerfCurrentCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        terminated due to a disconnect event during the current
        15-minute interval." 
    ::= { csubAggStatsEntry 35 }

csubAggStatsDiscontinuityTime OBJECT-TYPE
    SYNTAX          DateAndTime
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The date and time (as determined by the system's clock) of
        the most recent occurrence of an event affecting the 
        continuity of the aggregation statistics for this aggregation 
        point." 
    ::= { csubAggStatsEntry 36 }
 


csubAggStatsIntTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubAggStatsIntEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains aggregated subscriber session performance
        data collected for as much as a day's worth of 15-minute
        measurement intervals.

        This table has an expansion dependent relationship on the
        csubAggStatsTable, containing zero or more rows for each row
        contained by the csubAggStatsTable.

        Observe that the collection and maintenance of aggregated
        subscriber performance data is OPTIONAL for all scopes of
        aggregation.  However, an implementation should maintain at
        least one interval for the 'scope of aggregation' that contains
        all subscriber sessions maintained by the system."
    ::= { csubAggStats 2 }

csubAggStatsIntEntry OBJECT-TYPE
    SYNTAX          CsubAggStatsIntEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry contains the aggregated subscriber session performance
        data collected over a single 15-minute measurement interval
        within a 'scope of aggregation'.  For further details regarding
        'scope of aggregation', see the descriptive text associated with
        the csubAggStatsEntry."
    INDEX           {
                        csubAggStatsPointType,
                        csubAggStatsPoint,
                        csubAggStatsSessionType,
                        csubAggStatsIntNumber
                    } 
    ::= { csubAggStatsIntTable 1 }

CsubAggStatsIntEntry ::= SEQUENCE {
        csubAggStatsIntNumber          Unsigned32,
        csubAggStatsIntValid           TruthValue,
        csubAggStatsIntCreatedSessions PerfIntervalCount,
        csubAggStatsIntFailedSessions  PerfIntervalCount,
        csubAggStatsIntUpSessions      PerfIntervalCount,
        csubAggStatsIntAuthSessions    PerfIntervalCount,
        csubAggStatsIntDiscSessions    PerfIntervalCount
}

csubAggStatsIntNumber OBJECT-TYPE
    SYNTAX          Unsigned32 (1..96)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates the interval number identifying the
        15-minute measurement interval for which aggregated subscriber
        session performance data was successfully collected by the
        system.

        The interval identified by the value '1' represents the most
        recent 15-minute measurement interval, and the interval
        identified by the value (n) represents the interval immediately
        preceding the interval identified by the value (n-1)." 
    ::= { csubAggStatsIntEntry 1 }

csubAggStatsIntValid OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates whether the data for the 15-minute
        measurement interval is valid." 
    ::= { csubAggStatsIntEntry 2 }

csubAggStatsIntCreatedSessions OBJECT-TYPE
    SYNTAX          PerfIntervalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' created during the 15-minute
        measurement interval." 
    ::= { csubAggStatsIntEntry 3 }

csubAggStatsIntFailedSessions OBJECT-TYPE
    SYNTAX          PerfIntervalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that were in the PENDING state
        and terminated for reasons other than disconnect during the
        15-minute measurement interval." 
    ::= { csubAggStatsIntEntry 4 }

csubAggStatsIntUpSessions OBJECT-TYPE
    SYNTAX          PerfIntervalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned to the UP
        state during the 15-minute measurement interval." 
    ::= { csubAggStatsIntEntry 5 }

csubAggStatsIntAuthSessions OBJECT-TYPE
    SYNTAX          PerfIntervalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        within the 'scope of aggregation' that transitioned from the
        UNAUTHENTICATED to the AUTHENTICATED state during the
        15-minute measurement interval." 
    ::= { csubAggStatsIntEntry 6 }

csubAggStatsIntDiscSessions OBJECT-TYPE
    SYNTAX          PerfIntervalCount
    UNITS           "sessions"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the total number of subscriber sessions
        terminated due to a disconnect event during the 15-minute
        measurement interval." 
    ::= { csubAggStatsIntEntry 7 }
 


csubAggStatsThreshTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubAggStatsThreshEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Please enter the Table Description here."
    ::= { csubAggStats 3 }

csubAggStatsThreshEntry OBJECT-TYPE
    SYNTAX          CsubAggStatsThreshEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A row in this table exists for each row in the
        csubAggStatsTable.
        Each row defines the set of thresholds and evaluation attributes
        for an aggregation point."
    INDEX           { csubSessionRisingThresh } 
    ::= { csubAggStatsThreshTable 1 }

CsubAggStatsThreshEntry ::= SEQUENCE {
        csubSessionRisingThresh              Unsigned32,
        csubSessionFallingThresh             Unsigned32,
        csubSessionDeltaPercentFallingThresh Unsigned32,
        csubSessionThreshEvalInterval        Unsigned32
}

csubSessionRisingThresh OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This threshold, if non-zero, indicates the rising threshold
        for the value of csubAggStatsUpSessions for the aggregation
        point,
        When the current sample of csubAggStatsUpSessions is greater
        than
        or equal to this threshold, and the value of
        csubAggStatsUpSessions
        for the last sample interval was less than this thershold, the
        csubSessionRisingNotif is triggered.

                 If the value of this threshold is 0, the threshold is
        not evaluated." 
    ::= { csubAggStatsThreshEntry 1 }

csubSessionFallingThresh OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This threshold, if non-zero, indicates the falling threshold
        for the value of csubAggStatsUpSessions for the aggregation
        point,
        When the current sample of csubAggStatsUpSessions is less than
        or equal to this threshold, and the value of
        csubAggStatsUpSessions
        for the last sample interval was greater than this thershold,
        the
        csubSessionFallingNotif is triggered.

                 If the value of this threshold is 0, the threshold is
        not evaluated." 
    ::= { csubAggStatsThreshEntry 2 }

csubSessionDeltaPercentFallingThresh OBJECT-TYPE
    SYNTAX          Unsigned32 (0..100)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This threshold, if non-zero, indicates the delta falling
        threshold
        as a percentage of the value of csubAggStatsUpSessions for the
        aggregation point, The delta as a percentage of
        csubAggStatsUpSessions (delta_percent) is calculated as
        follows:
              current value of csubAggStatsUpSessions = value(n)
                     previous sampled value of csubAggStatsUpSessions =
        value(n-1)

                     delta_percent = ((value(n-1) - value(n)) /
        value(n-1)) * 100

                 If the delta_percent value of the current evaluation
        interval is
                 greater than the value of this threshold, a
                 csubSessionDeltaPercentLossNotif is triggered.

                 If the value of this threshold is 0, the threshold is
        not evaluated." 
    ::= { csubAggStatsThreshEntry 3 }

csubSessionThreshEvalInterval OBJECT-TYPE
    SYNTAX          Unsigned32 (0..900)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The value of this object sets the number of seconds between
        samples
        for threshold evaluation. For implementations capable of
        per-session event evaluation of thresholds this object
        represents the maximum number of seconds between samples." 
    ::= { csubAggStatsThreshEntry 4 }
 


csubJobFinishedNotifyEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies whether the system generates a
        csubJobFinishedNotify notification when the system finishes
        processing a subscriber session job."
    DEFVAL          { true } 
    ::= { csubJob 1 }

csubJobIndexedAttributes OBJECT-TYPE
    SYNTAX          SubSessionIdentities
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates which subscriber session identities the
        system maintains as searchable keys.  This value serves the
        EMS/NMS in configuring a subscriber session query, as at least
        one match criteria must be an 'indexed attribute'." 
    ::= { csubJob 2 }

csubJobIdNext OBJECT-TYPE
    SYNTAX          SubscriberJobIdentifierOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the next available identifier for the
        creation of a new row in the csubJobTable.  If no available
        identifier exists, then this object has the value '0'." 
    ::= { csubJob 3 }

csubJobMaxNumber OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    UNITS           "jobs"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object indicates the maximum number of outstanding
        subscriber session jobs the system can support.  If the
        csubJobTable contains a number of rows (i.e., the value of
        csubJobCount) equal to this value, then any attempt to create a
        new row will result in a response with an error-status of
        'resourceUnavailable'." 
    ::= { csubJob 4 }

csubJobMaxLife OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    UNITS           "seconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies the maximum life a subscriber session
        report corresponding to a subscriber session job having a
        csubJobType of 'query'.  The system tracks the time elapsed
        after it finishes processing a query.  When the time elapsed
        reaches the value specified by this column, the system
        automatically  destroys the report.  A value of '0' disables the
        automatic destruction of reports."
    DEFVAL          { 300 } 
    ::= { csubJob 5 }

csubJobCount OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "jobs"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of subscriber session jobs
        currently maintained by the csubJobTable." 
    ::= { csubJob 6 }

csubJobTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubJobEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the subscriber session jobs submitted by
        the EMS/NMS."
    ::= { csubJob 7 }

csubJobEntry OBJECT-TYPE
    SYNTAX          CsubJobEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describing a subscriber session job.  At this time,
        subscriber session jobs can perform one of two tasks:

        - Subscriber Session Query
            This type of job invokes the report generator, which builds
            a list of subscriber sessions matching criteria specified by
            the corresponding row in the csubJobMatchParamsTable.  The
            list built by the report generator must conform to
            parameters specified by the corresponding row in
            csubJobQueryParamsTable, which at this time only affects
            sorting order.

        - Subscriber Session Clear
            This type of job causes the system to terminate those
            subscriber sessions matching criteria specified by the
            corresponding row in the csubJobMatchParamsTable.

        The following procedure summarizes how the EMS/NMS can start and
        monitor a subscriber session job:

        1)  The EMS/NMS must start by reading csubJobIdNext.  If it is
            zero, continue polling csubJobIdNext until it is non-zero.

        2)  The EMS/NMS creates a row in the csubJobTable using the
            instance identifier retrieved in the last step.  Since every
            object contained by the entry with a MAX-ACCESS of 
            'read-create' specifies a default value, it makes little
            difference whether the EMS/NMS employs create-and-wait or
            create-and-go semantics.

        3)  The EMS/NMS sets the type of subscriber session job by
            setting the corresponding instance of csubJobType.

        4a) If the job is a 'query', then the EMS/NMS must configure
            the query before starting it by setting columns contained
            by the corresponding rows in the csubJobMatchParamsTable and
            csubJobQueryParamsTable.

        4b) If job is a 'clear', then the EMS/NMS must configure
            the job before starting it by setting columns contained by
            the corresponding row in the csubJobMatchParamsTable.

        5)  The EMS/NMS can now start the job by setting the 
            corresponding instance of csubJobControl to 'start'.

        6)  The EMS/NMS can monitor the progress of the job by polling
            the corresponding instance of csubJobState.  It can also
            wait for a csubJobFinishedNotify notification.  When the
            state of the job transitions to 'finished', then the system
            has finished executing the job.

        7)  The EMS/NMS can determine the final status of the job by
            reading the corresponding instance of csubJobFinishedReason.
            If job is a 'query' and the corresponding instance of
            csubJobFinishedReason is 'normal', then the EMS/NMS can
            safely read the report by retrieving the corresponding
            rows from the csubJobReportTable.

        8a) After a job has finished, the EMS/NMS has the option of
            destroying it.  It can do this by simply setting the
            corresponding instance of  csubJobStatus to 'destroy'.
            Alternatively, the EMS/NMS may retain the job and execute it
            again in the future (by returning to step 5).  Additionally,
            nothing would prevent the EMS/NMS from changing the job's
            type, which causes the automatic destruction of the
            corresponding report.

        8b) If the job is a 'query' and the EMS/NMS opts to retain the
            job, then it may consider releasing the corresponding report
            after reading it.  It can do this by setting the
            corresponding instance of csubJobControl to 'release'."
    INDEX           { csubJobId } 
    ::= { csubJobTable 1 }

CsubJobEntry ::= SEQUENCE {
        csubJobId             SubscriberJobIdentifier,
        csubJobStatus         RowStatus,
        csubJobStorage        StorageType,
        csubJobType           INTEGER,
        csubJobControl        INTEGER,
        csubJobState          INTEGER,
        csubJobStartedTime    TimeStamp,
        csubJobFinishedTime   TimeStamp,
        csubJobFinishedReason INTEGER
}

csubJobId OBJECT-TYPE
    SYNTAX          SubscriberJobIdentifier
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates an arbitrary, positive integer-value
        uniquely identifying the subscriber session job." 
    ::= { csubJobEntry 1 }

csubJobStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the status of the subscriber session
        job.  The following columns must be valid before activating a
        subscriber session job:

            - csubJobStorage
            - csubJobType
            - csubJobControl

        However, these objects specify a default value.  Thus, it is
        possible to use create-and-go semantics without setting any
        additional columns.

        An implementation must allow the EMS/NMS to modify any column
        when this column is 'active', including columns defined in
        tables that have a one-to-one or sparse dependent relationship
        on this table." 
    ::= { csubJobEntry 2 }

csubJobStorage OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies what happens to the subscriber session
        job upon restart."
    DEFVAL          { volatile } 
    ::= { csubJobEntry 3 }

csubJobType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        noop(1),
                        query(2),
                        clear(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of subscriber session job:

        'noop'
            This type of job does nothing and simply serves as a
            convenient default value for newly created jobs, thereby
            allowing create-and-go row creation without having to
            specify the type of job.

        'query'
            This type of job starts a subscriber session query.  The
            system searches for any subscriber sessions matching the
            configured criteria and sorts them into a resulting
            report.

            Upon activation of a subscriber session with this value,
            the system automatically creates corresponding rows in
            the csubJobMatchParamsTable and csubQueryParamsTable.

        'clear'
            This type of job causes the system to terminated all
            subscriber sessions matching configured criteria.

            Upon activation of a subscriber session with this value,
            the system automatically creates a corresponding row in
            the csubJobMatchParamsTable."
    DEFVAL          { noop } 
    ::= { csubJobEntry 4 }

csubJobControl OBJECT-TYPE
    SYNTAX          INTEGER  {
                        noop(1),
                        start(2),
                        abort(3),
                        release(4)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies an action relating to the subscriber
        session job:

            'noop'
                This action does nothing.

            'start'
                If the corresponding instance of csubJobType is 'noop',
                then this action simply causes the system to set the
                corresponding instances of csubJobState and
                csubJobFinishedReason to 'finished' and 'normal',
                respectively.

                If the corresponding instance of csubJobType is not
                'noop' and the system is not executing a subscriber
                session job, then this action causes the system
                immediately execute the subscriber session job.

                If the corresponding instance of csubJobType is not
                'noop' and the system is already executing a subscriber
                session job, then this action causes the system to put
                the job on the subscriber session job queue.

            'abort'
                If the subscriber session job is in the subscriber
                session job queue, then this action causes the system to
                remove the job from the queue.

                If the system is executing the subscriber session job,
                then this action causes the system to stop the job.

            'release'
                This action causes the system to destroy any
                corresponding rows in the csubJobReportTable.

                The system only accepts this action for a previously
                executed subscriber session job having a corresponding
                instance of csubJobType set to 'query'.  Any attempt to
                issue this action under other circumstances will result
                in a response indicating an  error-status of
                'inconsistentValue'.

        When read, this column is always 'noop'."
    DEFVAL          { noop } 
    ::= { csubJobEntry 5 }

csubJobState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        idle(1),
                        pending(2),
                        inProgress(3),
                        finished(4)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current state of the subscriber
        session job:

            'idle'
                This state indicates that the system has not executed
                the subscriber session job since it was created.

            'pending'
                This state indicates that the subscriber session job is
                waiting in the subscriber session job queue.

            'inProgress'
                This state indicates that the system is executing the
                subscriber session job.  Observe that the system may
                execute more than one subscriber session job at a time.

            'finished'
                This state indicates that the system has executed the
                subscriber session job and it has finished.  The
                corresponding instance of csubJobFinishedReason
                indicates further details regarding the reason why the
                job finished." 
    ::= { csubJobEntry 6 }

csubJobStartedTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the value of sysUpTime when the system
        started executing the subscriber session job.  This value will
        be '0' when the corresponding instance of csubJobState is 'idle'
        or 'pending'." 
    ::= { csubJobEntry 7 }

csubJobFinishedTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the value of sysUpTime when the system
        finished executing the subscriber session job, for whatever
        reason.  This value will be '0' when the corresponding instance
        of csubJobState is 'idle', 'pending', or 'inProgress'." 
    ::= { csubJobEntry 8 }

csubJobFinishedReason OBJECT-TYPE
    SYNTAX          INTEGER  {
                        invalid(1),
                        other(2),
                        normal(3),
                        aborted(4),
                        insufficientResources(5),
                        error(6)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the reason why the system finished
        executing the subscriber session job:

            'invalid'
                Indicates that the corresponding instance of
                csubJobState is either 'idle', 'pending', or
                'inProgress'.

            'other'
                Indicates that the system finished executing the
                subscriber session job abnormally for a reason not
                recognized by this MIB module.

            'normal'
                Indicates that the system finished executing the
                subscriber session job with no problems.

            'aborted'
                Indicates that the system finished executing the
                subscriber session job as the result of the EMS/NMS
                writing 'abort' to the corresponding instance of
                csubJobControl.

            'insufficientResources'
                Indicates that the system finished executing the
                subscriber session job abnormally due to insufficient
                resources to continue.

            'error'
                Indicates that the system encountered an error that
                prevented it from completing the job." 
    ::= { csubJobEntry 9 }
 


csubJobMatchParamsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubJobMatchParamsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains subscriber session job parameters
        describing match criteria.

        This table has a sparse-dependent relationship on the
        csubJobTable, containing a row for each job having a
        csubJobType of 'query' or 'clear'."
    ::= { csubJob 8 }

csubJobMatchParamsEntry OBJECT-TYPE
    SYNTAX          CsubJobMatchParamsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describes a set of subscriber session match criteria.
        The set contains those subscriber session identities specified
        by csubJobMatchIdentities.

        If the corresponding row in the csubJobTable has a csubJobType
        of 'query', then the system builds a report containing those
        subscriber sessions matching these criteria.

        If the corresponding row in the csubJobTable has a csubJobType
        of 'clear', then the system terminates those subscriber
        sessions matching these criteria.

        The system automatically creates an entry when the EMS/NMS sets
        the corresponding instance of csubJobType to 'query' or 'clear'.
        Likewise, the system automatically destroys an entry under the
        following circumstances:

        1)  The EMS/NMS destroys the corresponding row in the
            csubJobTable.

        2)  The EMS/NMS sets the corresponding instance of csubJobType
            to 'noop'."
    INDEX           { csubJobId } 
    ::= { csubJobMatchParamsTable 1 }

CsubJobMatchParamsEntry ::= SEQUENCE {
        csubJobMatchIdentities       SubSessionIdentities,
        csubJobMatchOtherParams      BITS,
        csubJobMatchSubscriberLabel  SubscriberLabel,
        csubJobMatchMacAddress       MacAddress,
        csubJobMatchNativeVrf        SubscriberVRF,
        csubJobMatchNativeIpAddrType InetAddressType,
        csubJobMatchNativeIpAddr     InetAddress,
        csubJobMatchNativeIpMask     InetAddress,
        csubJobMatchDomainVrf        SubscriberVRF,
        csubJobMatchDomainIpAddrType InetAddressType,
        csubJobMatchDomainIpAddr     InetAddress,
        csubJobMatchDomainIpMask     InetAddress,
        csubJobMatchPbhk             SubscriberPbhk,
        csubJobMatchRemoteId         SubscriberRemoteId,
        csubJobMatchCircuitId        SubscriberCircuitId,
        csubJobMatchNasPort          SubscriberNasPort,
        csubJobMatchDomain           SubscriberDomain,
        csubJobMatchUsername         SubscriberUsername,
        csubJobMatchAcctSessionId    SubscriberAcctSessionId,
        csubJobMatchDnis             SubscriberDnis,
        csubJobMatchMedia            SubscriberMediaType,
        csubJobMatchMlpNegotiated    TruthValue,
        csubJobMatchProtocol         SubscriberProtocolType,
        csubJobMatchServiceName      CbpElementName,
        csubJobMatchDhcpClass        SubscriberDhcpClass,
        csubJobMatchTunnelName       SubscriberTunnelName,
        csubJobMatchDanglingDuration Unsigned32,
        csubJobMatchState            SubSessionState,
        csubJobMatchAuthenticated    TruthValue,
        csubJobMatchRedundancyMode   SubSessionRedundancyMode
}

csubJobMatchIdentities OBJECT-TYPE
    SYNTAX          SubSessionIdentities
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the subscriber identities that the
        system uses to determine the subscriber sessions the job
        executes on.

        Each bit in this bit string corresponds to one or more columns
        in this table.  If the bit is '0', then the value of the
        corresponding columns are invalid.  If the bit is '1', then the
        value of corresponding columns are valid.

        The following list specifies the mappings between the bits and
        the columns:

            'subscriberLabel' => csubJobMatchSubscriberLabel
            'macAddress'      => csubJobMatchMacAddress
            'nativeVrf'       => csubJobMatchNativeVrf
            'nativeIpAddress' => csubJobMatchNativeIpAddrType,
                                 csubJobMatchNativeIpAddr,
                                 csubJobMatchNativeIpMask,
            'domainVrf'       => csubJobMatchDomainVrf
            'domainIpAddress' => csubJobMatchDomainIpAddrType,
                                 csubJobMatchDomainIpAddr,
                                 csubJobMatchDomainIpMask
            'pbhk'            => csubJobMatchPbhk
            'remoteId'        => csubJobMatchRemoteId
            'circuitId'       => csubJobMatchCircuitId
            'nasPort'         => csubJobMatchNasPort
            'domain'          => csubJobMatchDomain
            'username'        => csubJobMatchUsername
            'acctSessionId'   => csubJobMatchAcctSessionId
            'dnis'            => csubJobMatchDnis
            'media'           => csubJobMatchMedia
            'mlpNegotiated'   => csubJobMatchMlpNegotiated
            'protocol'        => csubJobMatchProtocol
            'serviceName'     => csubJobMatchServiceName
            'dhcpClass'       => csubJobMatchDhcpClass
            'tunnelName'      => csubJobMatchTunnelName

        Observe that the bit 'ifIndex' has no meaning, as subscriber
        session jobs do not match against this subscriber session
        identity."
    DEFVAL          { {  } } 
    ::= { csubJobMatchParamsEntry 1 }

csubJobMatchOtherParams OBJECT-TYPE
    SYNTAX          BITS {
                        danglingDuration(0),
                        state(1),
                        authenticated(2),
                        redundancyMode(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies other parameters relating to subscriber
        sessions a subscriber session job may match against.

        Each bit in this bit string corresponds to a column in this
        table.  If the bit is '0', then the value of the corresponding
        column is invalid.  If the bit is '1', then the value of the
        corresponding column represents the value of the parameter
        identity the system should match against for the corresponding
        subscriber session job.

        The following list specifies the mappings between bits and the
        columns:

            'danglingDuration' => csubJobMatchDanglingDuration
            'state'            => csubJobMatchState
            'authenticated'    => csubJobMatchAuthenticated
            'redundancyMode'   => csubJobMatchRedundancyMode"
    DEFVAL          { {  } } 
    ::= { csubJobMatchParamsEntry 2 }

csubJobMatchSubscriberLabel OBJECT-TYPE
    SYNTAX          SubscriberLabel
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the subscriber label that the system
        matches against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'subscriberLabel' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { 0 } 
    ::= { csubJobMatchParamsEntry 3 }

csubJobMatchMacAddress OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the MAC address that the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'macAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '000000000000'H } 
    ::= { csubJobMatchParamsEntry 4 }

csubJobMatchNativeVrf OBJECT-TYPE
    SYNTAX          SubscriberVRF
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the native VRF the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'nativeVrf' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 5 }

csubJobMatchNativeIpAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address specified
        by csubJobMatchNativeIpAddr and csubJobMatchNativeIpMask.

        This value is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { unknown } 
    ::= { csubJobMatchParamsEntry 6 }

csubJobMatchNativeIpAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the native IP address that the system
        matches against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '00'H } 
    ::= { csubJobMatchParamsEntry 7 }

csubJobMatchNativeIpMask OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the mask used when matching the native IP
        address against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'nativeIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '00'H } 
    ::= { csubJobMatchParamsEntry 8 }

csubJobMatchDomainVrf OBJECT-TYPE
    SYNTAX          SubscriberVRF
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the domain VRF the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'domainVrf' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 9 }

csubJobMatchDomainIpAddrType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of Internet address specified
        by csubJobMatchDomainIpAddr and csubJobMatchDomainIpMask.

        This value is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { unknown } 
    ::= { csubJobMatchParamsEntry 10 }

csubJobMatchDomainIpAddr OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the domain IP address that the system
        matches against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '00'H } 
    ::= { csubJobMatchParamsEntry 11 }

csubJobMatchDomainIpMask OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the mask used when matching the domain IP
        address against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'domainIpAddress' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '00'H } 
    ::= { csubJobMatchParamsEntry 12 }

csubJobMatchPbhk OBJECT-TYPE
    SYNTAX          SubscriberPbhk
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the PBHK that the system matches against
        subscriber sessions in the process of executing a subscriber
        session job.

        This value is valid only if the 'pbhk' bit of the corresponding
        instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '000000000000'H } 
    ::= { csubJobMatchParamsEntry 13 }

csubJobMatchRemoteId OBJECT-TYPE
    SYNTAX          SubscriberRemoteId
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Remote-Id the system matches against
        subscriber sessions in the process of executing a subscriber
        session job.

        This value is valid only if the 'remoteId' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 14 }

csubJobMatchCircuitId OBJECT-TYPE
    SYNTAX          SubscriberCircuitId
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the Circuit-Id the system matches against
        subscriber sessions in the process of executing a subscriber
        session job.

        This value is valid only if the 'circuitId' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 15 }

csubJobMatchNasPort OBJECT-TYPE
    SYNTAX          SubscriberNasPort
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the NAS port-identifier the system
        matches against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'nasPort' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { '00'H } 
    ::= { csubJobMatchParamsEntry 16 }

csubJobMatchDomain OBJECT-TYPE
    SYNTAX          SubscriberDomain
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the domain the system matches against
        subscriber sessions in the process of executing a subscriber
        session job.

        This value is valid only if the 'domain' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 17 }

csubJobMatchUsername OBJECT-TYPE
    SYNTAX          SubscriberUsername
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the username the system matches against
        subscriber sessions in the process of executing a subscriber
        session job.

        This value is valid only if the 'username' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 18 }

csubJobMatchAcctSessionId OBJECT-TYPE
    SYNTAX          SubscriberAcctSessionId
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the accounting session identifier the
        system matches against subscriber sessions in the process of
        executing a subscriber session job.

        This value is valid only if the 'accountingSid' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { 0 } 
    ::= { csubJobMatchParamsEntry 20 }

csubJobMatchDnis OBJECT-TYPE
    SYNTAX          SubscriberDnis
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the DNIS number the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'dnis' bit of the corresponding
        instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 21 }

csubJobMatchMedia OBJECT-TYPE
    SYNTAX          SubscriberMediaType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the media type the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'media' bit of the corresponding
        instance of csubJobMatchIdentities is '1'."
    DEFVAL          { other } 
    ::= { csubJobMatchParamsEntry 22 }

csubJobMatchMlpNegotiated OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the MLP negotiated flag the system
        matches against subscriber sessions in the process of executing
        a subscriber session job.

        This value is valid only if the 'mlpNegotiated' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { false } 
    ::= { csubJobMatchParamsEntry 23 }

csubJobMatchProtocol OBJECT-TYPE
    SYNTAX          SubscriberProtocolType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the protocol type the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'protocol' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { other } 
    ::= { csubJobMatchParamsEntry 24 }

csubJobMatchServiceName OBJECT-TYPE
    SYNTAX          CbpElementName
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the service name the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'serviceName' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 25 }

csubJobMatchDhcpClass OBJECT-TYPE
    SYNTAX          SubscriberDhcpClass
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the DHCP class name the system matches
        against subscriber sessions in the process of executing a
        subscriber session job.

        This value is valid only if the 'dhcpClass' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 26 }

csubJobMatchTunnelName OBJECT-TYPE
    SYNTAX          SubscriberTunnelName
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the tunnel name the system matches
        against subscriber session in the process of executing a
        subscriber session job.

        This value is valid only if the 'tunnelName' bit of the
        corresponding instance of csubJobMatchIdentities is '1'."
    DEFVAL          { "" } 
    ::= { csubJobMatchParamsEntry 27 }

csubJobMatchDanglingDuration OBJECT-TYPE
    SYNTAX          Unsigned32 (0..3600)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the minimum interval of time a subscriber
        session can remain dangling in order for the system to consider
        it a match in the process of executing a subscriber session job.
        A 'dangling' subscriber session is one in the PENDING state.

        The value '0' cannot be written to an instance of this object.
        However, it serves as a convenient value when the column is not
        valid.

        This value is valid only if the 'danglingDuration' bit of the
        corresponding instance of csubJobMatchOtherParams is '1'."
    DEFVAL          { 0 } 
    ::= { csubJobMatchParamsEntry 28 }

csubJobMatchState OBJECT-TYPE
    SYNTAX          SubSessionState
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the state of a subscriber session in
        order for the system to consider a match in the process of
        executing a subscriber session job.

        The value 'other' is not valid and an implementation should
        not allow it to be written to this column.

        This value is valid only if the 'state' bit of the
        corresponding instance of csubJobMatchOtherParams is '1'."
    DEFVAL          { other } 
    ::= { csubJobMatchParamsEntry 29 }

csubJobMatchAuthenticated OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies whether a subscriber session should be
        unauthenticated for the system to consider a match in the
        process of executing a subscriber session job.

        If this column is 'false', then the subscriber session job
        matches subscriber sessions that are unauthenticated.

        If this column is 'true', then the subscriber session job
        matches subscriber session that are authenticated.

        This value is valid only if the 'authenticated' bit of the
        corresponding instance of csubJobMatchParams is '1'."
    DEFVAL          { false } 
    ::= { csubJobMatchParamsEntry 30 }

csubJobMatchRedundancyMode OBJECT-TYPE
    SYNTAX          SubSessionRedundancyMode
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the redudancy mode of the subscriber
        session in order for the system to consider a match in the
        process of executing a subscriber session job.

        The value 'other' is not valid and an implementation should not
        allow it to be written to this column.

        This value is valid only if the 'redundancyMode' bit of the
        corresponding instance of csubJobMatchOtherParams is '1'."
    DEFVAL          { other } 
    ::= { csubJobMatchParamsEntry 31 }
 


csubJobQueryParamsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubJobQueryParamsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains subscriber session job parameters
        describing query parameters.

        This table has a sparse-dependent relationship on the
        csubJobTable, containing a row for each job having a
        csubJobType of 'query'."
    ::= { csubJob 9 }

csubJobQueryParamsEntry OBJECT-TYPE
    SYNTAX          CsubJobQueryParamsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describes a set of subscriber session query
        parameters.

        The system automatically creates an entry when the EMS/NMS sets
        the corresponding instance of csubJobType to 'query'.  Likewise,
        the system automatically destroys an entry under the following
        circumstances:

        1)  The EMS/NMS destroys the corresponding row in the csubJobTable.

        2)  The EMS/NMS sets the corresponding instance of csubJobType to
            'noop' or 'clear'."
    INDEX           { csubJobId } 
    ::= { csubJobQueryParamsTable 1 }

CsubJobQueryParamsEntry ::= SEQUENCE {
        csubJobQuerySortKey1            SubSessionIdentity,
        csubJobQuerySortKey2            SubSessionIdentity,
        csubJobQuerySortKey3            SubSessionIdentity,
        csubJobQueryResultingReportSize Gauge32
}

csubJobQuerySortKey1 OBJECT-TYPE
    SYNTAX          SubSessionIdentity
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the first subscriber identity that the
        system uses when sorting subscriber sessions into the final
        report corresponding to a subscriber session query.

        It is not valid to set this column to 'other' or 'ifIndex'."
    DEFVAL          { subscriberLabel } 
    ::= { csubJobQueryParamsEntry 1 }

csubJobQuerySortKey2 OBJECT-TYPE
    SYNTAX          SubSessionIdentity
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the second subscriber identity that the
        system uses when sorting subscriber sessions into the final
        report corresponding to a subscriber session query.

        If it is the desire to have the final report sorted on a single
        subscriber identity, then this column should be 'other'."
    DEFVAL          { other } 
    ::= { csubJobQueryParamsEntry 2 }

csubJobQuerySortKey3 OBJECT-TYPE
    SYNTAX          SubSessionIdentity
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the third subscriber identity that the
        system uses when sorting subscriber sessions into the final
        report corresponding to a subscriber session query.

        If it is the desire to have the final report sorted on one or
        two subscriber identities, then this column should be 'other'."
    DEFVAL          { other } 
    ::= { csubJobQueryParamsEntry 3 }

csubJobQueryResultingReportSize OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of subscriber sessions that
        matched the corresponding subscriber session query.

        The value of this column should be '0' unless the corresponding
        value of csubJobState is 'finished'.

        The value of this column should be '0' after the EMS/NMS sets
        the corresponding csubJobControl to 'release'." 
    ::= { csubJobQueryParamsEntry 4 }
 


csubJobQueueTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubJobQueueEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table lists the subscriber session jobs currently pending
        in the subscriber session job queue."
    ::= { csubJob 10 }

csubJobQueueEntry OBJECT-TYPE
    SYNTAX          CsubJobQueueEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describing an subscriber session job in the
        subscriber session job queue.

        The system creates an entry in this table when it places a
        subscriber session job on the subscriber session job queue.  It
        does this when the EMS/NMS sets an instance of csubJobControl to
        'start' and the system is already executing a subscriber session
        job.  Likewise, the system destroys an entry when it removes it
        from the queue.  This occurs under the following circumstances:

        1)  The system has finished executing a job, for whatever
            reason, and is ready to start executing the job at the head
            of the queue.

        2)  The EMS/NMS has set an instance of csubJobControl to 'abort'
            for a job that was on the queue."
    INDEX           { csubJobQueueNumber } 
    ::= { csubJobQueueTable 1 }

CsubJobQueueEntry ::= SEQUENCE {
        csubJobQueueNumber Unsigned32,
        csubJobQueueJobId  SubscriberJobIdentifier
}

csubJobQueueNumber OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates an positive, integer-value that uniquely
        identifies the entry in the table. The value of this object
        starts at '1' and monotonically increases for each subscriber
        session job inserted into the subscriber session job queue.  If
        the value of this object is '4294967295', the system will reset
        it to '1' when it inserts the next subscriber session job into
        the subscriber session job queue." 
    ::= { csubJobQueueEntry 1 }

csubJobQueueJobId OBJECT-TYPE
    SYNTAX          SubscriberJobIdentifier
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the identifier associated with the
        subscriber session job." 
    ::= { csubJobQueueEntry 2 }
 


csubJobReportTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CsubJobReportEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the reports corresponding to subscriber
        session jobs that have a csubJobType of 'query' and
        csubJobState of 'finished'.

        This table has an expansion dependent relationship on the
        csubJobTable, containing zero or more rows for each job."
    ::= { csubJob 11 }

csubJobReportEntry OBJECT-TYPE
    SYNTAX          CsubJobReportEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describes a subscriber session that satisfied the
        match criteria specified by the corresponding job.

        The system creates an entry for each subscriber session that
        satisfied the specified match criteria of a subscriber session
        job having a csubJobType of 'query'.  However, it does not
        create these entries until after the system has successfully
        executed the subscriber session job.

        The system destroys an entry under the following circumstances:

        1)  The corresponding subscriber session job has been destroyed
            by the EMS/NMS.

        2)  The value of csubJobMaxLife is non-zero and the age of the
            report has reached the specified maximum life.

        3)  The EMS/NMS has set the corresponding instance of
            csubJobControl to 'release'.

        4)  The EMS/NMS has restarted the corresponding subscriber
            session job (i.e., has set the corresponding instance of
            csubJobControl to 'start')."
    INDEX           {
                        csubJobId,
                        csubJobReportId
                    } 
    ::= { csubJobReportTable 1 }

CsubJobReportEntry ::= SEQUENCE {
        csubJobReportId      Unsigned32,
        csubJobReportSession InterfaceIndex
}

csubJobReportId OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates an arbitrary, positive, integer-value
        that uniquely identifies this entry in a report.  This auxiliary
        value is necessary, as the corresponding subscriber session job
        can specify up to three subscriber identities on which to sort
        the subscriber sessions that end up in the final report." 
    ::= { csubJobReportEntry 1 }

csubJobReportSession OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the ifIndex-value assigned to the
        subscriber session that satisfied the match criteria specified
        by the corresponding subscriber session job having a csubJobType
        of 'query'." 
    ::= { csubJobReportEntry 2 }
 


csubAggStatsThreshNotifEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object enables or disables the generation of any of the
        csubAggStats* threshold notifications." 
    ::= { csubAggThresh 1 }

-- Notifications

csubJobFinishedNotify NOTIFICATION-TYPE
    OBJECTS         {
                        csubJobStartedTime,
                        csubJobFinishedTime,
                        csubJobFinishedReason
                    }
    STATUS          current
    DESCRIPTION
        "The system generates this notification when the system finishes
        executing a subscriber session job, provided the value of
        csubJobFinishedNotifyEnable is 'true'.  The notification
        indicates the following additional data:

            csubJobStartedTime
                The value of sysUpTime when the system started executing
                the subscriber session job.

            csubJobFinishedTime
                The value of sysUpTime when the system finished
                executing the subscriber session job, for whatever
                reason.

            csubJobFinishedReason
                The reason why the system finished executing the
                subscriber session job."
   ::= { ciscoSubscriberSessionMIBNotifs 1 }

csubSessionRisingNotif NOTIFICATION-TYPE
    OBJECTS         {
                        csubAggStatsUpSessions,
                        csubSessionRisingThresh
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated when the value of
        csubAggStatsThreshNotifEnable is 'true'  AND the value of
        csubSessionRisingThresh is non-zero AND the current value
        csubAggStatsUpSessions is greater than or equal to the
        corresponding value of csubSessionRisingThresh and the previous
        sample of csubAggStatsUpSessions was less than
        csubSessionRisingThresh."
   ::= { ciscoSubscriberSessionMIBNotifs 2 }

csubSessionFallingNotif NOTIFICATION-TYPE
    OBJECTS         {
                        csubAggStatsUpSessions,
                        csubSessionFallingThresh
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated when the value of
        csubAggStatsThreshNotifEnable is 'true' AND the value of
        csubSessionFallingThresh is non-zero AND the current value
        csubAggStatsUpSessions is less than or equal to the
        corresponding value of csubSessionFallingThresh and the previous
        sample of csubAggStatsUpSessions was greater than
        csubSessionFallingThresh."
   ::= { ciscoSubscriberSessionMIBNotifs 3 }

csubSessionDeltaPercentFallingThreshNotif NOTIFICATION-TYPE
    OBJECTS         {
                        csubAggStatsUpSessions,
                        csubSessionDeltaPercentFallingThresh
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated when the value of
        csubAggStatsThreshNotifEnable is 'true' AND the value of
        csubSessionDeltaPercentFallingThresh is non-zero AND
                     If the delta_percent value of the current
        evaluation interval is
                     greater than the value of
        csubSessionDeltaPercentFallingThresh.

                 The delta as a percentage of csubAggStatsUpSessions
        (delta_percent)
                 is calculated as follows:
                     current value of csubAggStatsUpSessions = value(n)
                     previous sampled value of csubAggStatsUpSessions =
        value(n-1)

                     delta_percent = ((value(n-1) - value(n)) /
        value(n-1)) * 100"
   ::= { ciscoSubscriberSessionMIBNotifs 4 }
-- Conformance

ciscoSubscriberSessionMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBConform 1 }

ciscoSubscriberSessionMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoSubscriberSessionMIBConform 2 }


-- Compliance (rev. 1)

ciscoSubscriberSessionR1Compliance MODULE-COMPLIANCE
    STATUS          obsolete
    DESCRIPTION
        "This compliance state specifies the minimal requirements an
        implementation must meet in order to claim full compliance with
        the definition of the CISCO-SUSBCRIBER-SESSION-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        csubSessionGroup,
                        csubAggStatsGroup,
                        csubJobGroup,
                        csubJobMatchParamsGroup,
                        csubJobQueryParamsGroup,
                        csubJobNotifGroup
                    }

    GROUP           csubAggStatsCurrGroup
    DESCRIPTION
        "This group is optional."

    GROUP           csubAggStatsIntGroup
    DESCRIPTION
        "This group is optional.  However, a system should implement
        this group, maintaining at least one 15-minute performance data
        collection interval."

    GROUP           csubAggStatsDayGroup
    DESCRIPTION
        "This group is optional.  A system should not implement this
        group unless it is capable of maintaining 96 performance data
        collection intervals for the csubAggStatsIntTable."

    GROUP           csubJobQueueGroup
    DESCRIPTION
        "This group is optional."
    ::= { ciscoSubscriberSessionMIBCompliances 1 }

ciscoSubscriberSessionR2Compliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "This compliance state specifies the new table called
        csubAggStatsThreshEntry"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        csubAggStatsThreshGroup,
                        csubAggStatsNotifGroup
                    }

    OBJECT          csubSessionRisingThresh
    SYNTAX          Unsigned32 (0..4294967295)
    MIN-ACCESS      read-write
    DESCRIPTION
        "This threshold, if non-zero, indicates the rising threshold
        for the value of csubAggStatsUpSessions for the aggregation
        point,         When the current sample of csubAggStatsUpSessions
        is greater than         or equal to this threshold, and the
        value of csubAggStatsUpSessions
        for the last sample interval was less than this thershold, the  
             csubSessionRisingNotif is triggered.

                If the value of this threshold is 0, the threshold is
        not evaluated"

    OBJECT          csubSessionFallingThresh
    SYNTAX          Unsigned32 (0..4294967295)
    MIN-ACCESS      read-write
    DESCRIPTION
        "This threshold, if non-zero, indicates the falling threshold for
        the value of csubAggStatsUpSessions for the aggregation point,  
              When the current sample of csubAggStatsUpSessions is less
        than         or equal to this threshold, and the value of
        csubAggStatsUpSessions
        for the last sample interval was greater than this thershold,
        the
        csubSessionFallingNotif is triggered.

                 If the value of this threshold is 0, the threshold is
        not evaluated."

    OBJECT          csubSessionDeltaPercentFallingThresh
    SYNTAX          Unsigned32 (0..100)
    MIN-ACCESS      read-write
    DESCRIPTION
        "This threshold, if non-zero, indicates the delta falling
        threshold
        as a percentage of the value of csubAggStatsUpSessions for the  
           aggregation point, The delta as a percentage of
        csubAggStatsUpSessions (delta_percent)
                 is calculated as follows:
                     current value of csubAggStatsUpSessions = value(n)
                     previous sampled value of csubAggStatsUpSessions =
        value(n-1)

                     delta_percent = ((value(n-1) - value(n)) /
        value(n-1)) * 100

                 If the delta_percent value of the current evaluation
        interval is
                 greater than the value of this threshold, a
                 csubSessionDeltaPercentLossNotif is triggered.

                 If the value of this threshold is 0, the threshold is
        not evaluated."

    OBJECT          csubSessionThreshEvalInterval
    SYNTAX          Unsigned32 (0..900)
    MIN-ACCESS      read-write
    DESCRIPTION
        "The value of this object sets the number of seconds between
        samples
        for threshold evaluation. For implementations capable of
        per-session event evaluation of thresholds this object
        represents the maximum number of seconds between samples."

    OBJECT          csubAggStatsThreshNotifEnable
    SYNTAX          TruthValue
    MIN-ACCESS      read-write
    DESCRIPTION
        "This object enables or disables the generation of any of the
        csubAggStats* threshold notifications"
    ::= { ciscoSubscriberSessionMIBCompliances 2 }

-- Units of Conformance

csubSessionGroup OBJECT-GROUP
    OBJECTS         {
                        csubSessionType,
                        csubSessionIpAddrAssignment,
                        csubSessionState,
                        csubSessionAuthenticated,
                        csubSessionRedundancyMode,
                        csubSessionCreationTime,
                        csubSessionDerivedCfg,
                        csubSessionAvailableIdentities,
                        csubSessionSubscriberLabel,
                        csubSessionMacAddress,
                        csubSessionNativeVrf,
                        csubSessionNativeIpAddrType,
                        csubSessionNativeIpAddr,
                        csubSessionNativeIpMask,
                        csubSessionDomainVrf,
                        csubSessionDomainIpAddrType,
                        csubSessionDomainIpAddr,
                        csubSessionDomainIpMask,
                        csubSessionPbhk,
                        csubSessionRemoteId,
                        csubSessionCircuitId,
                        csubSessionNasPort,
                        csubSessionDomain,
                        csubSessionUsername,
                        csubSessionAcctSessionId,
                        csubSessionDnis,
                        csubSessionMedia,
                        csubSessionMlpNegotiated,
                        csubSessionProtocol,
                        csubSessionDhcpClass,
                        csubSessionTunnelName,
                        csubSessionIfIndex
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects that describe subscriber sessions."
    ::= { ciscoSubscriberSessionMIBGroups 1 }

csubAggStatsGroup OBJECT-GROUP
    OBJECTS         {
                        csubAggStatsPendingSessions,
                        csubAggStatsUpSessions,
                        csubAggStatsAuthSessions,
                        csubAggStatsRedSessions,
                        csubAggStatsHighUpSessions,
                        csubAggStatsAvgSessionUptime,
                        csubAggStatsAvgSessionRPM,
                        csubAggStatsAvgSessionRPH,
                        csubAggStatsThrottleEngagements,
                        csubAggStatsTotalCreatedSessions,
                        csubAggStatsTotalFailedSessions,
                        csubAggStatsTotalUpSessions,
                        csubAggStatsTotalAuthSessions,
                        csubAggStatsTotalDiscSessions
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing aggregated statistics
        relating to subscriber sessions maintained by a system."
    ::= { ciscoSubscriberSessionMIBGroups 2 }

csubAggStatsCurrGroup OBJECT-GROUP
    OBJECTS         {
                        csubAggStatsCurrTimeElapsed,
                        csubAggStatsCurrValidIntervals,
                        csubAggStatsCurrInvalidIntervals,
                        csubAggStatsCurrCreatedSessions,
                        csubAggStatsCurrFailedSessions,
                        csubAggStatsCurrUpSessions,
                        csubAggStatsCurrAuthSessions,
                        csubAggStatsCurrDiscSessions
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing aggregated statistics
        for the current 15-minute performance data collection interval."
    ::= { ciscoSubscriberSessionMIBGroups 3 }

csubAggStatsIntGroup OBJECT-GROUP
    OBJECTS         {
                        csubAggStatsIntValid,
                        csubAggStatsIntCreatedSessions,
                        csubAggStatsIntFailedSessions,
                        csubAggStatsIntUpSessions,
                        csubAggStatsIntAuthSessions,
                        csubAggStatsIntDiscSessions
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing aggregated statistics
        for as many as 96 previous 15-minute performance data
        collection intervals."
    ::= { ciscoSubscriberSessionMIBGroups 4 }

csubAggStatsDayGroup OBJECT-GROUP
    OBJECTS         {
                        csubAggStatsDayCreatedSessions,
                        csubAggStatsDayFailedSessions,
                        csubAggStatsDayUpSessions,
                        csubAggStatsDayAuthSessions,
                        csubAggStatsDayDiscSessions
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing aggregated statistics
        for the last 24-hour performance data collection interval (which
        ends with the last 15-minute performance data collection
        interval."
    ::= { ciscoSubscriberSessionMIBGroups 5 }

csubJobGroup OBJECT-GROUP
    OBJECTS         {
                        csubJobFinishedNotifyEnable,
                        csubJobIndexedAttributes,
                        csubJobIdNext,
                        csubJobMaxNumber,
                        csubJobMaxLife,
                        csubJobCount,
                        csubJobStatus,
                        csubJobStorage,
                        csubJobType,
                        csubJobControl,
                        csubJobState,
                        csubJobStartedTime,
                        csubJobFinishedTime,
                        csubJobFinishedReason
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing subscriber session
        jobs."
    ::= { ciscoSubscriberSessionMIBGroups 6 }

csubJobMatchParamsGroup OBJECT-GROUP
    OBJECTS         {
                        csubJobMatchIdentities,
                        csubJobMatchOtherParams,
                        csubJobMatchSubscriberLabel,
                        csubJobMatchMacAddress,
                        csubJobMatchNativeVrf,
                        csubJobMatchNativeIpAddrType,
                        csubJobMatchNativeIpAddr,
                        csubJobMatchNativeIpMask,
                        csubJobMatchDomainVrf,
                        csubJobMatchDomainIpAddrType,
                        csubJobMatchDomainIpAddr,
                        csubJobMatchDomainIpMask,
                        csubJobMatchPbhk,
                        csubJobMatchRemoteId,
                        csubJobMatchCircuitId,
                        csubJobMatchNasPort,
                        csubJobMatchDomain,
                        csubJobMatchUsername,
                        csubJobMatchAcctSessionId,
                        csubJobMatchDnis,
                        csubJobMatchMedia,
                        csubJobMatchMlpNegotiated,
                        csubJobMatchProtocol,
                        csubJobMatchServiceName,
                        csubJobMatchDhcpClass,
                        csubJobMatchTunnelName,
                        csubJobMatchDanglingDuration,
                        csubJobMatchState,
                        csubJobMatchAuthenticated,
                        csubJobMatchRedundancyMode
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing match parameters used by
        'query' and 'clear' subscriber session jobs."
    ::= { ciscoSubscriberSessionMIBGroups 7 }

csubJobQueryParamsGroup OBJECT-GROUP
    OBJECTS         {
                        csubJobQuerySortKey1,
                        csubJobQuerySortKey2,
                        csubJobQuerySortKey3,
                        csubJobQueryResultingReportSize,
                        csubJobReportSession
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing parameters used by the
        'query' subscriber session jobs."
    ::= { ciscoSubscriberSessionMIBGroups 8 }

csubJobQueueGroup OBJECT-GROUP
    OBJECTS         { csubJobQueueJobId }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing the subscriber session
        job queue."
    ::= { ciscoSubscriberSessionMIBGroups 9 }

csubJobNotifGroup NOTIFICATION-GROUP
   NOTIFICATIONS    { csubJobFinishedNotify }
    STATUS          current
    DESCRIPTION
        "This group contains notifications indicating events relating
        to subscriber session jobs."
    ::= { ciscoSubscriberSessionMIBGroups 10 }

csubAggStatsThreshGroup OBJECT-GROUP
    OBJECTS         {
                        csubSessionRisingThresh,
                        csubSessionFallingThresh,
                        csubSessionDeltaPercentFallingThresh,
                        csubSessionThreshEvalInterval,
                        csubAggStatsThreshNotifEnable
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing the subscriber session
        aggregation stats thresholds."
    ::= { ciscoSubscriberSessionMIBGroups 11 }

csubAggStatsNotifGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        csubSessionRisingNotif,
                        csubSessionFallingNotif,
                        csubSessionDeltaPercentFallingThreshNotif
                    }
    STATUS          current
    DESCRIPTION
        "This group contains notifications indicating events relating
        to subscriber session aggregation stats."
    ::= { ciscoSubscriberSessionMIBGroups 12 }

END































