-- =================================================================
-- Copyright (c) 2004-2012 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  Private MIB File For Loadbalance
-- Reference:
-- Version: V1.0
-- History:
-- V1.0  2010-12 Initial Version by l05567
--       2011-11 Add 'h3cLBRealServerConnectNumber', 'h3cLBTrap',
--               'h3cLBRealServerOverLoad', 'h3cLBTrapPrex' by l05567
-- =================================================================
A3COM-HUAWEI-LB-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    h3cCommon
        FROM A3COM-HUAWEI-OID-MIB;

h3cLB MODULE-IDENTITY
    LAST-UPDATED "201012010000Z"
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085
        "
    DESCRIPTION
        "The private mib file includes the loadbalance information of
        the device."
    REVISION      "201012010000Z"
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { h3cCommon 116 }

h3cLBTables OBJECT IDENTIFIER ::= { h3cLB 1 }

-- MIB contains 2 groups

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

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

h3cLBRealServerGroupEntry OBJECT-TYPE
    SYNTAX      H3cLBRealServerGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the information of the real server group."
    INDEX {
            h3cLBRealServerGroupName
          }
    ::= { h3cLBRealServerGroupTable 1 }

H3cLBRealServerGroupEntry  ::=
    SEQUENCE{
        h3cLBRealServerGroupName                DisplayString
    }

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


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

h3cLBRealServerEntry OBJECT-TYPE
    SYNTAX      H3cLBRealServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the information of the real server."
    INDEX {
            h3cLBRealServerGroupName,
            h3cLBRealServerName
          }
    ::= { h3cLBRealServerTable 1 }

H3cLBRealServerEntry  ::=
    SEQUENCE{
        h3cLBRealServerName                DisplayString,
        h3cLBRealServerStatus              INTEGER,
        h3cLBRealServerConnectNumber       Integer32
    }

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

h3cLBRealServerStatus 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."
     ::= { h3cLBRealServerEntry 2 }

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

-- =================================================================
--    Traps of Loadbalance
-- =================================================================
h3cLBTrap OBJECT IDENTIFIER ::= {h3cLB 2}

h3cLBTrapPrex OBJECT IDENTIFIER ::= {h3cLBTrap 0}

h3cLBRealServerOverLoad NOTIFICATION-TYPE
    OBJECTS
        {
            h3cLBRealServerGroupName,
            h3cLBRealServerName,
            h3cLBRealServerConnectNumber
        }
    STATUS      current
    DESCRIPTION
        "This trap is sent when the real server is overloaded."
    ::= {h3cLBTrapPrex 1}

END
