-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description:  Private MIB File For Loadbalance
-- Reference:
-- Version: V1.0
-- History:
-- V1.0  2010-12 Initial Version by l05567
--       2011-11 Add 'hpnicfLBRealServerConnectNumber', 'hpnicfLBTrap',
--               'hpnicfLBRealServerOverLoad', 'hpnicfLBTrapPrex' by l05567
-- =================================================================
HPN-ICF-LB-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    hpnicfCommon
        FROM HPN-ICF-OID-MIB;

hpnicfLB MODULE-IDENTITY
    LAST-UPDATED "201012010000Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "The private mib file includes the loadbalance information of
        the device."
    REVISION      "201012010000Z"
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { hpnicfCommon 116 }

hpnicfLBTables OBJECT IDENTIFIER ::= { hpnicfLB 1 }

-- MIB contains 2 groups

-- =================================================================
--    Real Server Group Table
-- =================================================================

hpnicfLBRealServerGroupTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfLBRealServerGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Real server group table for loadbalance."
    ::= { hpnicfLBTables 1 }

hpnicfLBRealServerGroupEntry OBJECT-TYPE
    SYNTAX      HpnicfLBRealServerGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the information of the real server group."
    INDEX {
            hpnicfLBRealServerGroupName
          }
    ::= { hpnicfLBRealServerGroupTable 1 }

HpnicfLBRealServerGroupEntry  ::=
    SEQUENCE{
        hpnicfLBRealServerGroupName                DisplayString
    }

hpnicfLBRealServerGroupName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..31))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Real server group name."
    ::= { hpnicfLBRealServerGroupEntry 1 }


-- =================================================================
--    Real Server Table
-- =================================================================
hpnicfLBRealServerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfLBRealServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Real server table for loadbalance."
    ::= { hpnicfLBTables 2 }

hpnicfLBRealServerEntry OBJECT-TYPE
    SYNTAX      HpnicfLBRealServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the information of the real server."
    INDEX {
            hpnicfLBRealServerGroupName,
            hpnicfLBRealServerName
          }
    ::= { hpnicfLBRealServerTable 1 }

HpnicfLBRealServerEntry  ::=
    SEQUENCE{
        hpnicfLBRealServerName                DisplayString,
        hpnicfLBRealServerStatus              INTEGER,
        hpnicfLBRealServerConnectNumber       Integer32
    }

hpnicfLBRealServerName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..31))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Real server name."
    ::= { hpnicfLBRealServerEntry 1 }

hpnicfLBRealServerStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                          enabled(1),
                          disabled(2),
                          slowdown(3)
                        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A list of real server status type.
         enabled:      the real server is enabled.
         disabled:     the real server is disabled, the loadbalance device
                       does not assign any traffic to the real server.
         slowdown:     the real server continues to process the existed session
                       previously assigned to it, but the loadbalance device
                       does not assign any new session to the real server."
     ::= { hpnicfLBRealServerEntry 2 }

hpnicfLBRealServerConnectNumber OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The connection number of real server."
    ::= { hpnicfLBRealServerEntry 3 }

-- =================================================================
--    Traps of Loadbalance
-- =================================================================
hpnicfLBTrap OBJECT IDENTIFIER ::= {hpnicfLB 2}

hpnicfLBTrapPrex OBJECT IDENTIFIER ::= {hpnicfLBTrap 0}

hpnicfLBRealServerOverLoad NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfLBRealServerGroupName,
            hpnicfLBRealServerName,
            hpnicfLBRealServerConnectNumber
        }
    STATUS      current
    DESCRIPTION
        "This trap is sent when the real server is overloaded."
    ::= {hpnicfLBTrapPrex 1}

END

