-- ==================================================================
-- Copyright (C) 2009 by H3C Technologies. All rights reserved.
--
-- Description: Domain MIB
-- Reference:
-- Version: V1.6
-- History:
-- V1.0 2005.03.23 The initial version, created by Xulei
-- V1.1 2005.06.03 updated by Xulei
--      Update SMIv2 syntax of some MIB objects
-- V1.2 2006.03.27 updated by yuanzhijie
--      1. Modified the description of h3cDomainSchemeRowStatus
--      2. Add h3cDomainSchemeAAAType, h3cDomainSchemeAAAName,
--         h3cDomainSchemeAccessMode
--      3. Change the value range of the object h3cDomainAuthSchemeName
--         and h3cDomainAcctSchemeName
-- V1.3 2007.03.07 updated by yangyang
--      Change SYNTAX of h3cDomainName and h3cDomainDefault
-- V1.4 2008.11.25 updated by ouzhili
--      Add an enumeration vlanlist(3) to object h3cDomainVlanAssignMode
-- V1.5 2008.12.30 updated by dupengfei
--      Add h3cDomainCurrentAccessNum
-- V1.6 2009.08.05 updated by huxiulan
--      Add an enumeration wapi(12) to object h3cAccessModeofDomainScheme
-- ==================================================================
A3COM-HUAWEI-DOMAIN-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        h3cCommon
            FROM A3COM-HUAWEI-OID-MIB
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        Integer32, Counter32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
        RowStatus, TruthValue, TEXTUAL-CONVENTION
            FROM SNMPv2-TC;

    h3cDomain MODULE-IDENTITY
        LAST-UPDATED "200908050000Z"            -- August 05, 2009 at 00:00 GMT
        ORGANIZATION
            "H3C Technologies Co., Ltd."
        CONTACT-INFO
            "Platform Team Beijing Institute H3C Tech, Inc.
            Http://www.h3c.com
            E-mail:support@h3c.com "
        DESCRIPTION
            "The MIB module is used for managing domain."
    ::= { h3cCommon 46 }

    H3cModeOfDomainScheme ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
        "The scheme mode of the domain.
        none: indicates the domain has no scheme.
        local:indicates the domain will use local-server as a scheme.
        radius:indicates the domain will use radius scheme.
        tacacs:indicates the domain will use tacacs scheme."
        SYNTAX INTEGER
        {
            none(1),
            local(2),
            radius(3),
            tacacs(4)
        }

    H3cAAATypeDomainScheme ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
        "The service type of the server."
        SYNTAX INTEGER
        {
            accounting(1),
            authentication(2),
            authorization(3),
            none(4)
        }

  H3cAccessModeofDomainScheme ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
        "The access mode of the domain."
        SYNTAX INTEGER
        {
            default(1),
            login(2),
            lanAccess(3),
            portal(4),
            ppp(5),
            gcm(6),
            dvpn(7),
            dhcp(8),
            voice(9),
            superauthen(10),
            command(11),
            wapi(12)
        }

    h3cDomainControl OBJECT IDENTIFIER ::= { h3cDomain 1 }

    h3cDomainDefault OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (1..128))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
        "Specifies default domain on the equipment.  Default value is 'system'."
    ::=  { h3cDomainControl 1 }


    h3cDomainTables OBJECT IDENTIFIER ::= { h3cDomain 2 }

    h3cDomainInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF H3cDomainInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The (conceptual) table listing the domains."
    ::= { h3cDomainTables 1 }

    h3cDomainInfoEntry OBJECT-TYPE
        SYNTAX  H3cDomainInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing a domain."
        INDEX { h3cDomainName }
    ::= { h3cDomainInfoTable 1 }

    H3cDomainInfoEntry ::= SEQUENCE {
        h3cDomainName                   OCTET STRING,
        h3cDomainState                  INTEGER,
        h3cDomainMaxAccessNum           Integer32,
        h3cDomainVlanAssignMode         INTEGER,
        h3cDomainIdleCutEnable          TruthValue,
        h3cDomainIdleCutMaxTime         Integer32,
        h3cDomainIdleCutMinFlow         Integer32,
        h3cDomainMessengerEnable        TruthValue,
        h3cDomainMessengerLimitTime     Integer32,
        h3cDomainMessengerSpanTime      Integer32,
        h3cDomainSelfServiceEnable      TruthValue,
        h3cDomainSelfServiceURL         OCTET STRING,
        h3cDomainAccFailureAction       INTEGER,
        h3cDomainRowStatus              RowStatus,
        h3cDomainCurrentAccessNum       Integer32 }

    h3cDomainName   OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (1..128))
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An index uniquely identifies a domain. "
    ::= { h3cDomainInfoEntry  1 }

    h3cDomainState   OBJECT-TYPE
        SYNTAX INTEGER
        {
            active(1),
            block(2)
        }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The state of the domain, which reflects whether the domain is active.
        Default value is active."
    ::= { h3cDomainInfoEntry  2 }

    h3cDomainMaxAccessNum   OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The maximum number which the domain allows to access.  If the value
        is set to 0, the access limit will be disabled."
    ::= { h3cDomainInfoEntry  3 }

    h3cDomainVlanAssignMode   OBJECT-TYPE
        SYNTAX INTEGER
        {
            integer(1),
            string(2),
            vlanlist(3)
        }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The vlan assignment mode.  The mode SHOULD be the same as the mode of
        corresponding server.
        1 (integer) - Integer Vlan assignment mode.
        2 (string)  - String Vlan assignment mode.
        3 (vlanlist)  - VLAN-List Vlan assignment mode.
        The default value is integer."
    ::= { h3cDomainInfoEntry  4 }

    h3cDomainIdleCutEnable   OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The idle cut control.  Setting this attribute to true, the connection will be
        cut when the flow is less than h3cDomainIdleCutMinFlow and lasts
        h3cDomainIdleCutMaxTime. Default value is false."
    ::= { h3cDomainInfoEntry  5 }

    h3cDomainIdleCutMaxTime   OBJECT-TYPE
        SYNTAX Integer32(1..120)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The maximal time of idle-cut.  The unit is minute.  If the value of
        h3cDomainIdleCutEnable is false, the value of h3cDomainIdleCutMaxTime
        is meaningless."
    ::= { h3cDomainInfoEntry  6 }

    h3cDomainIdleCutMinFlow   OBJECT-TYPE
        SYNTAX Integer32(1..10240000)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The minimal flow of idle-cut.  The unit is byte. If the value of
        h3cDomainIdleCutEnable is false, the value of h3cDomainIdleCutMinFlow
        is meaningless."
    ::= { h3cDomainInfoEntry  7 }

    h3cDomainMessengerEnable   OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The messenger service control.  If set h3cDomainMessengerEnable to true,
        h3cDomainMessengerLimitTime and h3cDomainMessengerSpanTime must be
        set to valid values.  Default value is false."
    ::= { h3cDomainInfoEntry  8 }

    h3cDomainMessengerLimitTime   OBJECT-TYPE
        SYNTAX Integer32(1..60)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The messenger service limit time.  The unit is minute.  If the value of
        h3cDomainMessengerEnable is false, the value of h3cDomainMessengerLimitTime
        is meaningless."
    ::= { h3cDomainInfoEntry  9 }

    h3cDomainMessengerSpanTime   OBJECT-TYPE
        SYNTAX Integer32(5..60)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The messenger service span time.  The unit is minute.
        It must be a multiple of 5.  If the value of h3cDomainMessengerEnable is false,
        the value of h3cDomainMessengerSpanTime is meaningless."
    ::= { h3cDomainInfoEntry  10 }

    h3cDomainSelfServiceEnable   OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The self service control.  If set h3cDomainSelfServiceEnable to true,
        h3cDomainSelfServiceURL must be set to a valid value.
        Default value is FALSE."
    ::= { h3cDomainInfoEntry  11 }

    h3cDomainSelfServiceURL   OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1..64))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "Self-service URL(Uniform Resource Locator) of the domain."
    ::= { h3cDomainInfoEntry  12 }

    h3cDomainAccFailureAction   OBJECT-TYPE
        SYNTAX INTEGER
        {
            ignore(1),
            reject(2)
        }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "Defines the action that authentication should be taken if
        authentication succeeds but the associated accounting start
        fails.
        1 (ignore) - treat as authentication success; ignore
            accounting start failure.
        2 (reject) - treat as authentication failed if
            corresponding accounting start fails.
        Default value is reject."
    ::= { h3cDomainInfoEntry  13 }

    h3cDomainRowStatus   OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS  read-create
        STATUS   current
        DESCRIPTION
        "This object is responsible for managing the creation, deletion and modification
        of rows, which supports active status and CreateAndGo, Destroy operation. To destroy
        an existent row, the domain of the row MUST NOT be used by user."
    ::= { h3cDomainInfoEntry 14 }

    h3cDomainCurrentAccessNum   OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  read-only
        STATUS   current
        DESCRIPTION
        "The current access number of the domain."
    ::= { h3cDomainInfoEntry 15 }

    -- ----------------------------------------------------------------------
    -- Scheme Table
    -- ----------------------------------------------------------------------
    h3cDomainSchemeTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF H3cDomainSchemeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The (conceptual) table listing schemes of all domains."
    ::= { h3cDomainTables 2 }

    h3cDomainSchemeEntry OBJECT-TYPE
        SYNTAX  H3cDomainSchemeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing an IP pool of a domain"
        INDEX { h3cDomainName, h3cDomainSchemeIndex }
    ::= { h3cDomainSchemeTable 1 }

    H3cDomainSchemeEntry ::= SEQUENCE {
        h3cDomainSchemeIndex            Integer32,
        h3cDomainSchemeMode             H3cModeOfDomainScheme,
        h3cDomainAuthSchemeName         OCTET STRING,
        h3cDomainAcctSchemeName         OCTET STRING,
        h3cDomainSchemeRowStatus        RowStatus,
        h3cDomainSchemeAAAType          H3cAAATypeDomainScheme,
        h3cDomainSchemeAAAName          OCTET STRING,
        h3cDomainSchemeAccessMode       H3cAccessModeofDomainScheme

        }

    h3cDomainSchemeIndex   OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The scheme index of domain, which is an identifier of a domain scheme."
    ::= { h3cDomainSchemeEntry  1 }

    h3cDomainSchemeMode   OBJECT-TYPE
        SYNTAX H3cModeOfDomainScheme
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The scheme mode of the domain.  Setting h3cDomainSchemeMode to none(1) indicates
        the domain has none scheme.  Setting h3cDomainSchemeMode to local(2) indicates the
        domain will use local-server as a scheme.  Setting h3cDomainSchemeMode to radius(3)
        or tacacs(4) indicates the domain will use radius or tacacs scheme.  If set
        h3cDomainSchemeMode to radius(3) or tacacs(4), h3cDomainAuthSchemeName and
        h3cDomainAcctSchemeName must be set to valid values.  And if h3cDomainSchemeMode is
        set to none(1) or local(2), the value of h3cDomainAuthSchemeName and h3cDomainAcctSchemeName
        will be ignored."
    ::= { h3cDomainSchemeEntry  2 }

    h3cDomainAuthSchemeName   OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..32))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The authentication scheme name of domain.  If h3cDomainSchemeMode is set to radius
        or tacacs, the h3cDomainAuthSchemeName must be configured with a valid value."
    ::= { h3cDomainSchemeEntry  3 }

    h3cDomainAcctSchemeName   OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..32))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The accounting scheme name of the domain. If h3cDomainSchemeMode is set to radius
        or tacacs, the h3cDomainAcctSchemeName must be configured with a valid value."
    ::= { h3cDomainSchemeEntry  4 }

    h3cDomainSchemeRowStatus   OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "This object is responsible for managing the creation, deletion and modification
        of rows, which supports active status and createAndGo, destroy operation. To
        create a new row, h3cDomainSchemeMode must be specified. To destroy an existent
        row, the scheme of the row MUST NOT be used by user."
    ::= { h3cDomainSchemeEntry  5 }

    h3cDomainSchemeAAAType    OBJECT-TYPE
        SYNTAX     H3cAAATypeDomainScheme
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "Service Type of the server."
   ::= { h3cDomainSchemeEntry  6 }

    h3cDomainSchemeAAAName       OBJECT-TYPE
         SYNTAX      OCTET STRING(SIZE (0..32))
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
         "The scheme name of the domain, whether the scheme represents accounting,
          authentication or authorization references the object h3cDomainSchemeAAAType.
          The value of the object must be valid if the value of h3cDomainSchemeMode
          is radius or tacacs, the value of the object will be ignored if the value
          of h3cDomainSchemeMode is none or local. If the domain has no scheme,
          there will be a null string. If this object is supported, the objects
          h3cDomainAuthSchemeName and h3cDomainAcctSchemeName will be ignored."
    ::= { h3cDomainSchemeEntry  7 }

    h3cDomainSchemeAccessMode    OBJECT-TYPE
         SYNTAX      H3cAccessModeofDomainScheme
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
         "The access mode of the domain scheme."
    ::= { h3cDomainSchemeEntry  8 }

    -- ----------------------------------------------------------------------
    -- IP pool Table
    -- ----------------------------------------------------------------------
    h3cDomainIpPoolTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF H3cDomainIpPoolEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The (conceptual) table listing IP pools of all domains."
    ::= { h3cDomainTables 3 }

    h3cDomainIpPoolEntry OBJECT-TYPE
        SYNTAX  H3cDomainIpPoolEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing an IP pool of a domain."
        INDEX { h3cDomainName, h3cDomainIpPoolNum }
    ::= { h3cDomainIpPoolTable 1 }

    H3cDomainIpPoolEntry ::= SEQUENCE {
        h3cDomainIpPoolNum              Integer32,
        h3cDomainIpPoolLowIpAddrType    InetAddressType,
        h3cDomainIpPoolLowIpAddr        InetAddress,
        h3cDomainIpPoolLen              Integer32,
        h3cDomainIpPoolRowStatus        RowStatus }


    h3cDomainIpPoolNum   OBJECT-TYPE
        SYNTAX   Integer32(0..99)
        MAX-ACCESS  not-accessible
        STATUS   current
        DESCRIPTION
        "The number of IP pool, which is an identifier of an IP pool."
    ::= { h3cDomainIpPoolEntry 1 }


    h3cDomainIpPoolLowIpAddrType   OBJECT-TYPE
        SYNTAX   InetAddressType
        MAX-ACCESS  read-create
        STATUS   current
        DESCRIPTION
        "The low IP addresses type (IPv4 or IPv6) of IP pool."
    ::= { h3cDomainIpPoolEntry 2 }


    h3cDomainIpPoolLowIpAddr   OBJECT-TYPE
        SYNTAX   InetAddress
        MAX-ACCESS  read-create
        STATUS   current
        DESCRIPTION
        "The low IP address of IP pool."
    ::= { h3cDomainIpPoolEntry 3 }


    h3cDomainIpPoolLen   OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  read-create
        STATUS   current
        DESCRIPTION
        "The length of IP pool.  Default value is 1."
    ::= { h3cDomainIpPoolEntry 4 }

   h3cDomainIpPoolRowStatus   OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS  read-create
        STATUS   current
        DESCRIPTION
        "This object is responsible for managing the creation, deletion and modification
        of rows, which supports active status and CreateAndGo, Destroy operation.  To
        create a new row, h3cDomainIpPoolNum and h3cDomainIpPoolLowIpAddr must be specified.
        To destroy an existent row, the IP pool of this row MUST NOT be used by user."
    ::= { h3cDomainIpPoolEntry 5 }
END
