-- ********************************************************************
-- CISCO-PSD-CLIENT-MIB.my: MIB file for PSD
--
-- August 2005, Suma Marutirao Sutar
--
-- Copyright (c), 2005 by Cisco Systems, Inc.
-- All rights reserved.
-- ********************************************************************
-- $Endlog$


CISCO-PSD-CLIENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Counter32,
        Integer32
                FROM SNMPv2-SMI
        SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
        RowStatus,
        TruthValue
            FROM SNMPv2-TC
        InetAddressType,
        InetAddress
                FROM INET-ADDRESS-MIB
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ciscoMgmt
                FROM CISCO-SMI;

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

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

                   Tel: +1 800 553-NETS

                E-mail: cs-gprs@cisco.com"
        DESCRIPTION
               "This MIB module manages the client side
               functionality of the Persistent Storage Device(PSD).

               This MIB instrumentation is for configuring
               data-store(PSD client) feature on GGSN and monitoring
               the state of the PSD server(up/down/full).

               The Cisco Persistent Storage Device(PSD) is an
               extension to existing storage on the Cisco Content
               Services Gateway(CSG).

               The GGSN currently allows sending of the CDRs to an
               active CG, while allowing up to two standby CG's to
               be configured. When all the configured CG's become
               unavailable, the CDRs get stored at the GGSN and
               start using up GGSN resources such as memory. As the
               amount of memory is limited on GGSN and failure of
               GGSN shall lead to losing these stored CDRs.
               Using PSD as temporary storage, shall avoid losses
               due to these problems. When all the configured CG's
               are unavailable, GGSN needs to backup the live closed
               CDR's to a PSD. When any of the CG's shall become
               available, GGSN shall retrieve the stored CDR's
               automatically from the PSD and forwards them to the
               active CG.

               PSD supports the charging protocol(GTP'), version 0 
               with a few private extensions, which is used to
               facilitate the required functionality via UDP.

               Acronyms and terms:

                 CDR    Call Detail Record
                 CID    Charging Identification
                 CG     Charging Gateway
                 CGF    Charging Gateway Functionality
                 DS     Data-Store
                 ETSI   European Telecommunications Standards
                        Institute
                 Ga     Name of the interface between SGSN/GGSN and
                        CG
                 Gi     Name of the interface between GGSN and PDN
                 Gn     Name of the interface between GGSN and SGSN
                 G-CDR  Gateway GPRS Support Node-Call Detail Record
                 GGSN   Gateway GPRS Support Node
                 GPRS   General Packet Radio Service
                 GSM    Global System for Mobile communication
                 GTP    GPRS Tunneling Protocol
                 GTP'   GTP enhanced for charging
                 IE     Information Element
                 MS     Mobile Station
                 PDN    Packet Data Network
                 PDP    Packet Data Protocol
                 SGSN   Serving GPRS support Node
                 TOS    Type of Service.
                 PSD    Persistence Storage Device."


--     REFERENCE
--               "[1] GSM 09.60: Digital cellular telecommunication
--                   system (Phase 2+); General Packet Radio Service
--                   (GPRS); GPRS Tunneling Protocol (GTP) across
--                   Gn and Gp Interface, ETSI, (V7.3.0)
--               [2] GSM 12.15: 'Digital Cellular telecommunications
--                   system (Phase 2+); General Packet Radio Service
--                   (GPRS); Charging in GPRS', ETSI, (V7.2.1)
--               [3] 3GPP; Universal Mobile Telecommunications System
--                   (UMTS);Telecommunication Management;Charging and
--                   billing;3G call and event data for Packet
--                   Switched(PS) domain.TS 32.015 version 3.8.0
--                   (Release 1999)."
       REVISION         "200508241800Z"
       DESCRIPTION
               "Initial version of this MIB module."
       ::= {ciscoMgmt 495 }

-- Notification Definitions

ciscoPsdClientMIBNotifs        OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIB 0 }

-- Object definitions

ciscoPsdClientMIBObjects      OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIB 1 }

ciscoPsdClientStatistics      OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBObjects 1 }

ciscoPsdClientNotifMgmt       OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBObjects 2 }

ciscoPsdClientConfigurations  OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBObjects 3 }

ciscoPsdClientNotifInfo        OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBObjects 4 }

-- Conformances definitions

ciscoPsdClientMIBConform      OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIB 2 }
--
-- Statistics
--

cPsdClientDSWriteReq     OBJECT-TYPE
       SYNTAX            Counter32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
             "The number of Data Record Transfer request (for write)
             messages sent to the PSD server.

             This counter is incremented when the FIFO write request
             is sent to the PSD server from the client."
       ::= { ciscoPsdClientStatistics 1 }

cPsdClientDSReadReq      OBJECT-TYPE
       SYNTAX            Counter32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
             "The number of Data Record Transfer request (for read)
             messages sent to PSD server.

             This counter is incremented when the FIFO read request
             message is sent to PSD server."
       ::= { ciscoPsdClientStatistics 2 }

cPsdClientDSRdWrRetrans  OBJECT-TYPE
       SYNTAX            Counter32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
             "The number of Data Record Transfer Request 
             (retransmission) messages sent to the PSD server.

             The PSD does not differentiate between a retransmission
             and original request. So, this counter together with
             the above two counters cPsdClientDSReadReq/
             cPsdClientDSWriteReq can be used to tally the number of
             messages received by the PSD client.

             This counter is incremented when the FIFO read/write
             retransmission messages are sent to PSD server."
       ::= { ciscoPsdClientStatistics 3 }

cPsdClientDSDiskFullTrans OBJECT-TYPE
       SYNTAX            Counter32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
             "The number of state transitions made by the PSD from
             state 'disk available' to 'disk full'. 

             This counter is incremented when client receives the
             disk full indication from PSD server."
       ::= { ciscoPsdClientStatistics 4 }

-- Notification related objects

cPsdClientNotifEnable    OBJECT-TYPE
       SYNTAX            TruthValue
       MAX-ACCESS        read-write
       STATUS            current
       DESCRIPTION
             "This object specifies whether the agent should
             generate the notifications defined in this MIB module.

             If the value of this object is 'true' it enables the
             device to generate the notifications.
             If the value of this object is 'false' it disables the
             device from generating the notifications."
       DEFVAL { false }
       ::= { ciscoPsdClientNotifMgmt 1 }

--
--Configurations
--

cPsdClientDSTable        OBJECT-TYPE
       SYNTAX            SEQUENCE OF CPsdClientDSEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "A table consisting of entries for data-store(DS) and
             auto-retrieval configurations.

             In order to minimize the performance/memory impact on
             the PSD client, as well as not to overwhelm the CG
             with both live CDRs and retrieved CDRs, the maximum
             retrieval rate from PSD server to GGSN is limited and
             can be configured by the user."
       ::= { ciscoPsdClientConfigurations 1 }

cPsdClientDSEntry        OBJECT-TYPE
       SYNTAX            CPsdClientDSEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "Each entry contains the configuration for
             auto-retrieval and also maximum retrieval value if
             auto-retrieval is enabled."
       INDEX    { cPsdClientDSName }
       ::= { cPsdClientDSTable 1 }

CPsdClientDSEntry ::= SEQUENCE {
       cPsdClientDSName            SnmpAdminString,
       cPsdClientDSAutoRetrieve    TruthValue,
       cPsdClientDSMaxRetrieve     Integer32,
       cPsdClientDSRowStatus       RowStatus
       }

cPsdClientDSName OBJECT-TYPE
       SYNTAX            SnmpAdminString (SIZE(1..32))
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "This object contains the name of the configured
             data-store"
       ::= { cPsdClientDSEntry 1 }

cPsdClientDSAutoRetrieve OBJECT-TYPE
       SYNTAX            TruthValue
       MAX-ACCESS        read-create
       STATUS            current
       DESCRIPTION
             "This object is used to enable/disable the CDR 
             auto-retrieval functionality.

             If value of this object is set to 'true',
             auto-retrieval is enabled.

             If value of this object is set to 'false', 
             auto-retrieval is disabled."
       DEFVAL { false }
       ::= { cPsdClientDSEntry 2 }

cPsdClientDSMaxRetrieve OBJECT-TYPE
       SYNTAX            Integer32(1..6000)
       UNITS             "messages/minute"
       MAX-ACCESS        read-create
       STATUS            current
       DESCRIPTION
             "This object used to specify the maximum retrieval
             value, when auto retrieve is enabled, i.e when the
             value of the corresponding instance of
             cPsdClientDSAutoRetrieve is set to 'true'."
       DEFVAL { 60 }
       ::= { cPsdClientDSEntry 3 }

cPsdClientDSRowStatus OBJECT-TYPE
       SYNTAX            RowStatus
       MAX-ACCESS        read-create
       STATUS            current
       DESCRIPTION
             "The status of this conceptual row. This object is 
             used to create a row or delete a existing row in a
             table."
       ::= { cPsdClientDSEntry 4 }

cPsdClientDSServerTable OBJECT-TYPE
       SYNTAX            SEQUENCE OF CPsdClientDSServerEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "The table contains the list of the PSD servers used to
             write/retrieve the CDRs."
       ::= { ciscoPsdClientConfigurations 2 }

cPsdClientDSServerEntry OBJECT-TYPE
       SYNTAX            CPsdClientDSServerEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "This entry contains a description of the PSD server."
       INDEX    { cPsdClientDSName,
                  cPsdClientDSServerAddressType,
                  cPsdClientDSServerAddress }
       ::= { cPsdClientDSServerTable 1 }

CPsdClientDSServerEntry ::= SEQUENCE {
       cPsdClientDSServerAddressType       InetAddressType,
       cPsdClientDSServerAddress           InetAddress,
       cPsdClientDSRetrieveOnly            TruthValue,
       cPsdClientDSServerRowStatus         RowStatus
       }

cPsdClientDSServerAddressType OBJECT-TYPE
       SYNTAX            InetAddressType
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "This object indicates the type of Internet address of
             the PSD server."
       ::= { cPsdClientDSServerEntry 1 }

cPsdClientDSServerAddress OBJECT-TYPE
       SYNTAX            InetAddress (SIZE (4..20))
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
             "The object specifies the Internet address of the PSD
             server. The type of address of an instance of this object
             is determined by the value of the corresponding instance
             of cPsdClientDSServerAddressType."
       ::= { cPsdClientDSServerEntry 2 }

cPsdClientDSRetrieveOnly OBJECT-TYPE
       SYNTAX            TruthValue
       MAX-ACCESS        read-create
       STATUS            current
       DESCRIPTION
             "The object represents that, the PSD server can be
             configured either as write/retrievable or as 
             retrievable only.

             If the value of this object is set to 'true', the PSD 
             server (the value of the corresponding instance of 
             cPsdClientDSServerAddress) shall not be used for
             writing the CDRs.

             If the value of this object is set to 'false', the PSD
             server (the value of the corresponding instance of    
             cPsdClientDSServerAddress) shall be used for writing
             the CDRs as well as retrieving the CDRs."
       ::= { cPsdClientDSServerEntry 3 }

cPsdClientDSServerRowStatus OBJECT-TYPE
       SYNTAX            RowStatus
       MAX-ACCESS        read-create
       STATUS            current
       DESCRIPTION
             "The status of this conceptual row. This object will
             create a row or delete a existing row in a table."
       ::= { cPsdClientDSServerEntry 4 }

--Notif info

cPsdClientNotifDSServerAddrType OBJECT-TYPE
       SYNTAX            InetAddressType
       MAX-ACCESS        accessible-for-notify
       STATUS            current
       DESCRIPTION
             "This object indicates the type of Internet address of
             the Data-Store server."
       ::= { ciscoPsdClientNotifInfo 1 }

cPsdClientNotifDSServerAddress OBJECT-TYPE
       SYNTAX            InetAddress
       MAX-ACCESS        accessible-for-notify
       STATUS            current
       DESCRIPTION
             "This object specifies the Internet address of the 
             Data-Store server . The type of address of an instance 
             of this object is determined by the value of 
             cPsdClientNotifDSServerAddrType."
       ::= { ciscoPsdClientNotifInfo 2 }

--
--  Notification Definitions
--

cPsdClientDownNotif NOTIFICATION-TYPE
       OBJECTS {
                 cPsdClientNotifDSServerAddrType,
                 cPsdClientNotifDSServerAddress
       }
       STATUS            current
       DESCRIPTION
             "A notification of this type is generated when the
             PSD server goes DOWN.

             If the PSD client was in write/retrieving state, then
             that operation shall be be stopped."
       ::= { ciscoPsdClientMIBNotifs 1 }

cPsdClientUpNotif NOTIFICATION-TYPE
       OBJECTS {
                 cPsdClientNotifDSServerAddrType,
                 cPsdClientNotifDSServerAddress
       } 
       STATUS            current
       DESCRIPTION
             "A notification of this type is generated when the
             PSD server comes UP.

             A GTP' path will be created fulfilling all the specific
             requirements of the PSD interface."
       ::= { ciscoPsdClientMIBNotifs 2 }

cPsdClientDiskFullNotif NOTIFICATION-TYPE
       OBJECTS {
                 cPsdClientNotifDSServerAddrType,
                 cPsdClientNotifDSServerAddress
               }
       STATUS            current
       DESCRIPTION
             "A notification of this type is generated when the
             PSD server's disk become full.
          
             If the disk of writable PSD server becomes full, the
             client shall not be able to write any CDR into the
             server. It shall then  behave as a retrieve only PSD
             server."
       ::= { ciscoPsdClientMIBNotifs 3 }

--
-- Conformances definitions
--
cPsdClientMIBCompliances OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBConform 1}

cPsdClientMIBGroups OBJECT IDENTIFIER
       ::= { ciscoPsdClientMIBConform 2}

-- compliance statements

cPsdClientMIBCompliance MODULE-COMPLIANCE
        STATUS           current
        DESCRIPTION
            "The compliance statement for entities which implement
            the CISCO PSD CLIENT MIB."
        MODULE  --this module
        MANDATORY-GROUPS { cPsdClientMIBStatisticsGroup,
                           cPsdClientMIBConfigurationsGroup,
                           cPsdClientMIBNotifGroup,
                           cPsdClientMIBNotifInfoGroup,
                           cPsdClientMIBNotifMgmtGroup
                         }
        OBJECT           cPsdClientDSRowStatus
        SYNTAX           INTEGER {
                            active(1),
                            createAndGo(4),
                            destroy(6)
                         }
        DESCRIPTION
              "The states notInService(2), notReady(3) and
              createAndWait(5) need not be supported."

        OBJECT           cPsdClientDSServerRowStatus
        SYNTAX           INTEGER {
                            active(1),
                            createAndGo(4),
                            destroy(6)
                         }
        DESCRIPTION
              "The states notInService(2), notReady(3) and
              createAndWait(5) need not be supported."
        ::= { cPsdClientMIBCompliances 1 }

-- units of conformance

cPsdClientMIBStatisticsGroup OBJECT-GROUP
        OBJECTS          {
                           cPsdClientDSWriteReq,
                           cPsdClientDSReadReq,
                           cPsdClientDSRdWrRetrans,
                           cPsdClientDSDiskFullTrans
                         }
        STATUS           current
        DESCRIPTION
              "A collection of objects providing Data Store
               related statistics."
        ::= { cPsdClientMIBGroups 1 }

cPsdClientMIBConfigurationsGroup OBJECT-GROUP
        OBJECTS           {
                            cPsdClientDSRowStatus,
                            cPsdClientDSAutoRetrieve,
                            cPsdClientDSMaxRetrieve,
                            cPsdClientDSServerRowStatus,
                            cPsdClientDSRetrieveOnly
                          }
        STATUS            current
        DESCRIPTION
              "A collection of objects providing Data Store related
               configurations."
        ::= { cPsdClientMIBGroups 2 }

cPsdClientMIBNotifGroup NOTIFICATION-GROUP
        NOTIFICATIONS      {
                             cPsdClientDownNotif,
                             cPsdClientUpNotif,
                             cPsdClientDiskFullNotif
                           }
        STATUS             current
        DESCRIPTION
              "A collection of Notifications."
        ::= { cPsdClientMIBGroups 3 }

cPsdClientMIBNotifInfoGroup OBJECT-GROUP
        OBJECTS            {
                             cPsdClientNotifDSServerAddrType,
                             cPsdClientNotifDSServerAddress
                           }
        STATUS             current
        DESCRIPTION
              "A collection of notification info objects on PSD."
        ::= { cPsdClientMIBGroups 4 }

cPsdClientMIBNotifMgmtGroup OBJECT-GROUP
       OBJECTS              {
                              cPsdClientNotifEnable
                            }
       STATUS               current
       DESCRIPTION
             "A collection of objects related with notification
             management on PSD."
       ::= { cPsdClientMIBGroups 5 }

END
