-- Copyright (C) 2000-2014, 2016-2017 Hewlett-Packard Enterprise Development LP

-- **************************************************************************
-- The contents of this software are proprietary and confidential to the
-- Hewlett-Packard Development Company, L.P.  No part of this program may be 
-- photocopied, reproduced, or translated into another programming language
-- without prior written consent of the Hewlett-Packard Development Co., L.P. 
-- **************************************************************************

HP-ACCT-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY, Integer32
             FROM SNMPv2-SMI
        DisplayString
            FROM SNMPv2-TC
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        hpSwitch
            FROM HP-ICF-OID;

    hpSwitchAccountingMIB MODULE-IDENTITY
        LAST-UPDATED "201909260000Z"  --   Sep 26, 2019
        ORGANIZATION "HP Networking"
        CONTACT-INFO "Hewlett Packard Company
                      8000 Foothills Blvd.
                      Roseville, CA 95747"
        DESCRIPTION  "This MIB module describes objects for managing
                     the Accounting service features of devices in the HP
                     Integrated Communication Facility product line."

        REVISION     "201909260000Z"  --   Sep 26, 2019
        DESCRIPTION  "Updated 'hpSwitchAccountingConfig' with
                      'hpSwitchAcctSessIdIncSwitchIdentity' object."

        REVISION     "201711220000Z"  --   Nov 22, 2017
        DESCRIPTION  "Updated 'hpSwitchAcctServiceIndex' object
                     with 'restUri' value."

        REVISION     "201408040000Z"  --   August 04, 2014
        DESCRIPTION  "Updated 'hpSwitchAcctServiceMethod' object
                      with 'tacacs' value and updated the description."

        REVISION     "201103050000Z"  --   March 05, 2011
        DESCRIPTION  "Updated 'hpSwitchAcctServiceMethod' object
                      with 'syslog' value."

        REVISION     "200907140000Z"  -- July 14, 2009
        DESCRIPTION  "Added 'hpSwitchAcctSessionIdentification' object,
                      updated 'hpSwitchAcctServiceMode' object
                      with 'interim-update' value."

        REVISION     "200807110000Z"  -- July 11, 2008
        DESCRIPTION  "Added 'hpSwitchAcctServiceServerGroupName' object."

        REVISION     "200108220238Z"  -- August 22, 2001
        DESCRIPTION  "Initial version of this MIB module."

        ::= { hpSwitch 17 }
            
-- ------------------------------------------------------------
   -- Configuration support for Accounting
-- ------------------------------------------------------------

    hpSwitchAccountingConfig
        OBJECT IDENTIFIER ::= { hpSwitchAccountingMIB 1 }

    hpSwitchAcctUpdateInterval OBJECT-TYPE
        SYNTAX      Integer32 (0..525600)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Defines periodic intervals to send accounting 
                    update records (in minutes)."
        ::= { hpSwitchAccountingConfig 1 }

    hpSwitchAcctSuppressNullUserName OBJECT-TYPE
        SYNTAX      INTEGER {
                        yes(1),
                        no(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "An indication of whether accounting records need
                    to be generated for users, whose username string
                    is NULL. If yes(1), then prevent accounting records
                    from being generated."
        ::= { hpSwitchAccountingConfig 2 }

    hpSwitchAcctSessionIdentification OBJECT-TYPE
        SYNTAX      INTEGER {
                        unique(1),
                        common(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies how accounting sessions for different
                    accounting service types will be identified.
                    unique - use a unique accounting session identifier
                             in accounting records for each accounting
                             service type (network, exec, system, commands).
                    common - use identical accounting session identifier
                             in all accounting records sent out of switch
                             for a given user's access session, irrespective
                             to the accounting service type that generates
                             the records within the session."
        DEFVAL      { unique }
        ::= { hpSwitchAccountingConfig 3 }

    hpSwitchAcctSessIdIncSwitchIdentity OBJECT-TYPE
        SYNTAX      INTEGER {
                        enable(1),
                        disable(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Include switch-identity in accounting session ID to make it
                     unique across the switches.

                     enable  - If enabled, session ID will include switch-identity
                               to make it unique across switches.
                     disable - If disabled, the session ID will not include switch-identity."
        DEFVAL      { disable }
        ::= { hpSwitchAccountingConfig 4 }

    hpSwitchAcctServiceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpSwitchAcctServiceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table lists the accounting service types,
                     accounting methods and the way of how accounting
                     sessions should be initiated or terminated."
        ::= { hpSwitchAccountingMIB 2 }

    hpSwitchAcctServiceEntry OBJECT-TYPE 
        SYNTAX      HpSwitchAcctServiceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An accounting service table entry."
        INDEX       { hpSwitchAcctServiceIndex }
        ::= {hpSwitchAcctServiceTable 1}

    HpSwitchAcctServiceEntry ::=
        SEQUENCE {
            hpSwitchAcctServiceIndex             INTEGER,
            hpSwitchAcctServiceMethod            INTEGER,
            hpSwitchAcctServiceMode              INTEGER,
            hpSwitchAcctServiceServerGroupName   DisplayString
        }

    hpSwitchAcctServiceIndex OBJECT-TYPE
        SYNTAX      INTEGER {
                        network(1),
                        exec(2),
                        system(3),
                        commands(4),
                        restUri(5)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies the accounting service type configured on 
                     the switch."
        ::= {hpSwitchAcctServiceEntry 1}

    hpSwitchAcctServiceMethod OBJECT-TYPE
        SYNTAX      INTEGER {
                        none(1),
                        radius(2),
                        syslog(3),
                        tacacs(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The method used for accounting. 
                     
                     A value of none (1) indicates that accounting is not 
                     performed.
                     A value of radius (2) indicates that accounting is performed 
                     using RADIUS.
                     A value of syslog (3) indicates that accounting is performed 
                     using SYSLOG.
                     A value of tacacs (4) indicates that accounting is performed 
                     using TACACS+."
        ::= { hpSwitchAcctServiceEntry 2 }

    hpSwitchAcctServiceMode OBJECT-TYPE
        SYNTAX      INTEGER {
                        none(1),
                        startStop(2),
                        stopOnly(3),
                        interimUpdate(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The mode of sending accounting messages to the server.
                     A value of none (1) indicates that no accounting messages are 
                     sent to the server.    
                     A value of startStop (2) indicates that a start accounting               
                     message is sent to the server at the beginning of an event and 
                     a stop accounting message is sent at the end of the event.
                     A value of stopOnly (3) indicates that a stop accounting 
                     message is sent at the end of an event.
                     A value of interim update (4) indicates that an accounting 
                     message is sent to the server after the command is executed. 
                     This option can be set only if the value of hpSwitchAcctServiceIndex 
                     is set to 'commands."
        ::= { hpSwitchAcctServiceEntry 3 }

    hpSwitchAcctServiceServerGroupName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The name that defines the RADIUS server group that this
                     authentication method is associated with.  See the
                     documentation for the maximum length of the group name."
        ::= { hpSwitchAcctServiceEntry 4 }

-- ------------------------------------------------------------
-- Conformance   
-- ------------------------------------------------------------

    hpSwitchAccountingMIBConformance
        OBJECT IDENTIFIER ::= { hpSwitchAccountingMIB 3 }

    hpSwitchAccountingMIBCompliances
        OBJECT IDENTIFIER ::= { hpSwitchAccountingMIBConformance 1}

    hpSwitchAccountingMIBGroups
        OBJECT IDENTIFIER ::= { hpSwitchAccountingMIBConformance 2}


    hpSwitchAccountingMIBCompliance MODULE-COMPLIANCE 
        STATUS      deprecated
        DESCRIPTION "The compliance statement for devices implementing the
                     HP Accounting Mib."
        MODULE
            MANDATORY-GROUPS { hpSwitchAccountingConfigGroup }
        ::= { hpSwitchAccountingMIBCompliances 1 }

    hpSwitchAccountingMIBCompliance1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The compliance statement for devices implementing the
                     HP Accounting Mib."
        MODULE
            MANDATORY-GROUPS { hpSwitchAccountingConfigGroup1 }
        ::= { hpSwitchAccountingMIBCompliances 2 }

    hpSwitchAccountingConfigGroup OBJECT-GROUP
        OBJECTS     { hpSwitchAcctUpdateInterval,
                      hpSwitchAcctSuppressNullUserName,
                      hpSwitchAcctSessionIdentification,
                      hpSwitchAcctServiceMethod,
                      hpSwitchAcctServiceMode,
                      hpSwitchAcctServiceServerGroupName
                    }
        STATUS      deprecated
        DESCRIPTION "A collection of objects for configuring the
                    accounting features."
        ::= { hpSwitchAccountingMIBGroups 1 }

    hpSwitchAccountingConfigGroup1 OBJECT-GROUP
        OBJECTS     { hpSwitchAcctUpdateInterval,
                      hpSwitchAcctSuppressNullUserName,
                      hpSwitchAcctSessionIdentification,
                      hpSwitchAcctServiceMethod,
                      hpSwitchAcctServiceMode,
                      hpSwitchAcctServiceServerGroupName,
                      hpSwitchAcctSessIdIncSwitchIdentity
                    }
        STATUS      current
        DESCRIPTION "A collection of objects for configuring the
                    accounting features."
        ::= { hpSwitchAccountingMIBGroups 2 }
END
