-- ============================================================================
-- Copyright (C) 2019 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- Description:  This MIB object provides IPDR settings, including settings of
--               sessions, collectors, the association between sessions and collectors, and IPDR parameters.
-- Reference:  
-- Version: V1.08
-- ============================================================================


    HUAWEI-IPDR-MIB  DEFINITIONS ::= BEGIN
        IMPORTS     
            huaweiUtility
                FROM HUAWEI-MIB
                OBJECT-TYPE,
            MODULE-IDENTITY, NOTIFICATION-TYPE, Unsigned32, Counter32, Integer32
                FROM SNMPv2-SMI               
            RowStatus, DisplayString
                FROM SNMPv2-TC              
            InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB;
     
     
        hwIpdr MODULE-IDENTITY 
            LAST-UPDATED "201902260000Z"
            ORGANIZATION "Huawei Technologies Co.,Ltd."
            CONTACT-INFO                                    
                         "Huawei Industrial Base            
                          Bantian, Longgang                 
                          Shenzhen 518129                   
                          People's Republic of China        
                          Website: http://www.huawei.com    
                          Email: support@huawei.com         
                         "                                  
            DESCRIPTION                         
              "
              This MIB object provides IPDR settings, including settings of sessions, collectors,
              the association between sessions and collectors, and IPDR parameters.
              " 
                 
--  Revision history
             REVISION    "201902260000Z"
             DESCRIPTION "V1.08, Modify the value of hwIpdrSessionId from (1..255) to (4294967295 | 1..255)."
			 
             REVISION    "201902140000Z"
             DESCRIPTION "V1.07, add the hwIpdrOntSwitch to hwIpdrSystemPara."
			 
             REVISION    "201708170000Z"
             DESCRIPTION "V1.06, Modify the value of hwIpdrCollectorVpnInstance from (1..31) to (0..31)."

             REVISION    "201706140000Z"
             DESCRIPTION "V1.05, add the hwIpdrCollectorVpnInstance to HwIpdrCollectorEntry."
						  
             REVISION    "201505190000Z"
             DESCRIPTION "V1.04,
                          1. Node name is modified [hwIpdrSessionAdminStatu -> hwIpdrSessionAdminStatus,hwIpdrSessionRowStatu -> hwIpdrSessionRowStatus,hwIpdrCollectorRowstatu -> hwIpdrCollectorRowstatus,hwIpdrSessionAndCollectorRowstatu -> hwIpdrSessionAndCollectorRowstatus].
                          2. Modify the MAX-ACCESS value of hwIpdrCollectorRowstatus and hwIpdrSessionAndCollectorRowstatus from read-write to read-create.
                          3. Modify the INDEX of hwIpdrSessionAndCollectorEntry from { hwIpdrSessionId, hwIpdrCollectorName } to { hwIpdrSessionId, IMPLIED hwIpdrCollectorName }."
  
             REVISION    "201406300000Z"
             DESCRIPTION "V1.03,
                          1. removed all hyphens (-) from enumerated values of hwIpdrTemplate.
                          2. removed all hyphens (-) from enumerated values of hwIpdrCollectorMethod."

             REVISION    "201308120000Z"
             DESCRIPTION "V1.02, add hwIpdrCollectorType node in table hwIpdrSystemPara."

             REVISION    "201305290000Z"
             DESCRIPTION "V1.01, modified the unconfig value of hwIpdrTemplate and hwIpdrCollectorMethod."

             REVISION    "201304240000Z"
             DESCRIPTION "V1.00, completed the draft."     
                
        ::= { huaweiUtility 184 }
        
        hwIpdrSessionTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwIpdrSessionEntry
            MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            A session table is used to create a session. 
            The index of this table is hwIpdrSessionId.
            "
        ::= { hwIpdr 1 }
        
        hwIpdrSessionEntry OBJECT-TYPE
            SYNTAX HwIpdrSessionEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
        "
        A session table is used to create a session. 
        The index of this entry is hwIpdrSessionId.
        "
        INDEX { hwIpdrSessionId }
        ::= { hwIpdrSessionTable 1 }
        
        HwIpdrSessionEntry ::=
            SEQUENCE { 
        hwIpdrSessionId
            Unsigned32,
        hwIpdrSessionName
            OCTET STRING,
        hwIpdrSessionDesc
            OCTET STRING,
        hwIpdrSessionTransCounter
            Counter32,
            hwIpdrSessionAckCounter
            Counter32,
        hwIpdrSessionLostCounter
            Counter32,
        hwIpdrTemplate
            INTEGER,
        hwIpdrCollectorMethod
                INTEGER,
        hwIpdrCollectorTime
            Integer32,
        hwIpdrSessionAdminStatus
            INTEGER,
        hwIpdrSessionRowStatus
            RowStatus
            }

        hwIpdrSessionId OBJECT-TYPE
            SYNTAX Unsigned32 (4294967295 | 1..255)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
        Session ID.
        "
        ::= { hwIpdrSessionEntry 1 }
        
        hwIpdrSessionName OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1..20))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Session name.
            "
        ::= { hwIpdrSessionEntry 2 }
        
        hwIpdrSessionDesc OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1..64))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Session description.
            "
        ::= { hwIpdrSessionEntry 3 }
        
        hwIpdrSessionTransCounter OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            Number of packets sent by the session.
            "
        ::= { hwIpdrSessionEntry 4 }
        
        hwIpdrSessionAckCounter OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            Number of packets responded by the session.
            "
        ::= { hwIpdrSessionEntry 5 }
        
        hwIpdrSessionLostCounter OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            Number of packets that are lost because they are not acknowledged by the collector.
            "
        ::= { hwIpdrSessionEntry 6 }
        
        hwIpdrTemplate OBJECT-TYPE
        SYNTAX INTEGER
        {
             templateUnconfiged(-1),
             samisType1(1),
             samisType2(2),
             diaglogType(3),
             diaglogEventType(4),
             diaglogDetailType(5),
             spectrumMeasurement(6),
             cmRegStatus(7),
             cmUsStats(8),
             topology(9),
             cpeType(10),
             usUtil(11),
             dsUtil(12),
             serviceFlow(13)
        }              
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            The type of the template.
            Options:
            1.templateUnconfiged(-1)    - Template id is not configured.
            2.samisType1(1)   - DOCSIS-SAMIS-TYPE-1 is an IPDR Service Definition
                                     schema defining the Subscriber Account Management (SAMIS)
                                     Type 1 IPDR data record which references the imported global elements.
                                     SAMIS-TYPE-1 is based on the inclusive streaming model where all
                                     fields are included in each streamed record.
            3.samisType2(2)   - DOCSIS-SAMIS-TYPE-2 is an IPDR Service Definition
                                     schema defining the Subscriber Account Management (SAMIS)
                                     Type 2 IPDR data record which references the imported global elements.
                                     SAMIS-TYPE-2 is based on the optimized streaming model where only
                                     updated fields are included in each streamed record.
            4.diaglogType(3)  - DOCSIS-DIAG-LOG-TYPE is an IPDR Service Definition
                                     schema defining the CMTS Diagnostic Log Type IPDR data
                                     record which references the imported global elements.
            5.diaglogEventType(4)   - DOCSIS-DIAG-LOG-EVENT-TYPE is an IPDR Service Definition
                                            schema defining the CMTS Diagnostic Log Event Type IPDR data
                                            record which references the imported global elements.
            6.diaglogDetailType(5)  - DOCSIS-DIAG-LOG-DETAIL-TYPE is an IPDR Service Definition
                                            schema defining the CMTS Diagnostic Log Detail Type IPDR data
                                            record which references the imported global elements.
            7.spectrumMeasurement(6) - DOCSIS-SPECTRUM-MEASUREMENT-TYPE is an IPDR Service
                                            Definition schema defining the Enhanced Signal Quality 
                                            Monitoring Spectrum Measurement Type IPDR data record which
                                            references the imported global elements.
            8.cmRegStatus(7)        - DOCSIS-CMTS-CM-REG-STATUS is an IPDR Service Definition Schema
                                            that defines the Registration status of the CM as perceived by
                                            the CMTS. 
            9.cmUsStats(8)          - DOCSIS-CMTS-CM-US-STATS is an IPDR Service Definition Schema
                                            that defines the Upstream Channel statistics. This definition
                                            supports multiple upstream channels.
            10.topology(9)             - DOCSIS-CMTS-TOPOLOGY-TYPE is an IPDR Service Definition Schema
                                            that defines the RF topology information that shows the
                                            connectivities of downstream and upstream channels to the fiber
                                            nodes within the CMTS.
            11.cpeType(10)           - DOCSIS-CPE-TYPE is an IPDR Service Definition
                                            schema defining the Customer Premise Equipment (CPE)
                                            Type IPDR data record which references the imported global elements.
            12.usUtil(11)            - DOCSIS-CMTS-US-UTIL-STATS-TYPE is an IPDR Service
                                            Definition Schema that defines upstream utilization
                                            statistics for a specified upstream logical channel
                                            interface for the specified CMTS.
            13.dsUtil(12)            - DOCSIS-CMTS-DS-UTIL-STATS-TYPE is an IPDR Service
                                            Definition Schema that defines downstream utilization
                                            statistics for a specified downstream interface for the
                                            specified CMTS.
            14.serviceFlow(13)       - DOCSIS-CMTS-CM-SERVICE-FLOW-TYPE
            "
        ::= { hwIpdrSessionEntry 7 }
        
        hwIpdrCollectorMethod OBJECT-TYPE
        SYNTAX INTEGER
        {
             collectMethodUnconfiged(-1),
             adHoc(1),
             event(2),
             timeInterval(3)
        }        
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            The type of collect mode.
            Options:
            1.collectMethodUnconfiged(-1) - Collect method is not configured.
            2.adHoc(1)          - Ad-hoc Session: Per request (from a Collector), the Exporter creates a session and closes it when either the data is
                                       streamed or a closing command is generated.Once Collector starts flow CMTS Exporter SHOULD start session,
                                       stream data and stop session. The CMTS Exporter can optionally support additional management interface triggers
                                       for starting the session.
            3.event(2)           - Event Based Session: It consists of an open-ended session or a Time Interval Session. During the time the IPDR
                                       session is open the exporter can stream records at any time, thus the name Event Based Session. In the case of an
                                       open-ended session, the collector could create documents based on size, number of records received, timestamps (to
                                       simulate Time Interval Sessions), or never creates an IPDRDoc.
            4.timeInterval(3)   - Time Interval Session: The exporter follows a schedule based session to stream data on a periodic time interval.
                                       The collector creates the IPDRDoc within those demarcation points. Note that the Time Interval Session is managed
                                       by the exporter as being delimited by session start/stop messages. A collector initiated flow operation is possible as
                                       well; the collector issues Flow Stop messages to stop the exporter streaming. Finally, it is possible to control the
                                       Time Interval Session at either end-points. A Time Interval Session may close immediately after the exporter
                                       streams the records or remain open until the end of the time interval in which case, the exporter stops the session and
                                       starts a new session for the next time interval.
            "
        ::= { hwIpdrSessionEntry 8 }
        
        hwIpdrCollectorTime OBJECT-TYPE
        SYNTAX Integer32 (0|15..1440)
        UNITS  "minutes"
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Reporting interval.
            "
        ::= { hwIpdrSessionEntry 9 }
        
        hwIpdrSessionAdminStatus OBJECT-TYPE
        SYNTAX INTEGER
        {
         deactivate(1),
         activate(2)
        }        
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
                Session state.
            Options:
            1.deactivate(1)   - Session deactivate.
            2.activate(2)     - Session activate.
            "
        ::= { hwIpdrSessionEntry 10 }
        
        hwIpdrSessionRowStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "
                This object is used to create, delete, and modify records in the table. 
                In a query, an leaf is displayed as active if a queried record is found.
            "
        ::= { hwIpdrSessionEntry 11 }

        hwIpdrCollectorTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwIpdrCollectorEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            A collector table is used to create a session. 
        The index of this table is hwIpdrCollectorName.
            "
        ::= { hwIpdr 2 }
        
        hwIpdrCollectorEntry OBJECT-TYPE
        SYNTAX HwIpdrCollectorEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            A collector table is used to create a session.
        The index of this entry is hwIpdrCollectorName.
            "
        INDEX { IMPLIED hwIpdrCollectorName }
        ::= { hwIpdrCollectorTable 1 }
        
        HwIpdrCollectorEntry ::=
            SEQUENCE { 
                hwIpdrCollectorName
                    OCTET STRING,
                hwIpdrCollectorIpAddrType
                    InetAddressType,
                hwIpdrCollectorIpAddress
                    InetAddress,
                hwIpdrCollectorPort
                    Unsigned32,
                hwIpdrCollectorRowstatus
                    RowStatus,
                hwIpdrCollectorVpnInstance
                    OCTET STRING
             }

        hwIpdrCollectorName OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1..20))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            Collector name.
            "
        ::= { hwIpdrCollectorEntry 1 }
        
        hwIpdrCollectorIpAddrType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Type of the collector's ip address.
            "
            ::= { hwIpdrCollectorEntry 2 }
        
        hwIpdrCollectorIpAddress OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Collector ip address.
            "
            ::= { hwIpdrCollectorEntry 3 }
        
        hwIpdrCollectorPort OBJECT-TYPE
        SYNTAX Unsigned32 (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Collector port.
            "
            ::= { hwIpdrCollectorEntry 4 }
		
        hwIpdrCollectorRowstatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "
                This object is used to create, delete, and modify records in the table. 
                In a query, an leaf is displayed as active if a queried record is found.
            "
            ::= { hwIpdrCollectorEntry 5 }

        hwIpdrCollectorVpnInstance OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..31))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            This object is used to establish a connection to the collector in a VPN network, and this object can only be used in passive mode.
            "
            ::= { hwIpdrCollectorEntry 6 }
			
        hwIpdrSessionAndCollectorTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwIpdrSessionAndCollectorEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The session and collector relationship table is used to create the association between the session and the collector. 
            The indexes of this table are hwIpdrSessionId and hwIpdrCollectorName.
            "
            ::= { hwIpdr 3 }
        
        hwIpdrSessionAndCollectorEntry OBJECT-TYPE
        SYNTAX HwIpdrSessionAndCollectorEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The session and collector relationship table is used to create the association between the session and the collector. 
            The indexes of this entry are hwIpdrSessionId and hwIpdrCollectorName.
            "
            INDEX { hwIpdrSessionId, IMPLIED hwIpdrCollectorName }
            ::= { hwIpdrSessionAndCollectorTable 1 }
        
        HwIpdrSessionAndCollectorEntry ::=
            SEQUENCE { 
                hwIpdrCollectorPriority
                    Integer32,
                hwIpdrSessionAndCollectorRowstatus
                    RowStatus
             }
        
        hwIpdrCollectorPriority OBJECT-TYPE
        SYNTAX Integer32 (1..10)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Collector's priority, a smaller value indicates a higher priority.
            "
            ::= { hwIpdrSessionAndCollectorEntry 1 }
        
        hwIpdrSessionAndCollectorRowstatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "
            This object is used to create, delete, and modify records in the table. 
            In a query, an leaf is displayed as active if a queried record is found.
            "
            ::= { hwIpdrSessionAndCollectorEntry 2 }
                                        
        hwIpdrSystemPara OBJECT IDENTIFIER ::= { hwIpdr 4 }
        
        hwIpdrKeepAliveInterval OBJECT-TYPE
        SYNTAX Integer32  (5..300)
        UNITS  "seconds"
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            IPDR keepalive time.
            Default: 300    
            "    
            ::= { hwIpdrSystemPara 1 }
        
        hwIpdrAckTimeout OBJECT-TYPE
        SYNTAX Integer32 (5..60)
        UNITS  "seconds"
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            IPDR acknowledgement timeout time.
            Default: 60
            "    
            ::= { hwIpdrSystemPara 2 }
        
        hwIpdrMaxUnackRecords OBJECT-TYPE
        SYNTAX Integer32 (5..200)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
            Maximum number of records of unacknowledged IPDR messages.  
            Default: 200
            "
                
            ::= { hwIpdrSystemPara 3 }
    
        hwIpdrCollectorType OBJECT-TYPE
        SYNTAX INTEGER
        {
         active (1),
         passive (2)
        }        
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
          Ipdr collector connection type.
          Default: active
            Options:
            1.active(1)     - IPDR Collector initiating a connection.
            2.passive(2)    - IPDR Collector receiving a connection.
            "
        ::= { hwIpdrSystemPara 4 }
		
		hwIpdrOntSwitch OBJECT-TYPE
        SYNTAX INTEGER
        {
         disable (1),
         enable (2)
        }        
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "
          Ipdr ont switch type.
          Default: disable
            Options:
            1.disable(1)     - IPDR Ont switch disable.
            2.enable(2)      - IPDR Ont switch enable.
            "
        ::= { hwIpdrSystemPara 5 } 
        
END
