-- ==================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: Domain MIB
-- Reference:
-- Version: V2.0
-- 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 hpnicfDomainSchemeRowStatus
--      2. Add hpnicfDomainSchemeAAAType, hpnicfDomainSchemeAAAName,
--         hpnicfDomainSchemeAccessMode
--      3. Change the value range of the object hpnicfDomainAuthSchemeName
--         and hpnicfDomainAcctSchemeName
-- V1.3 2007.03.07 updated by yangyang
--      Change SYNTAX of hpnicfDomainName and hpnicfDomainDefault
-- V1.4 2008.11.25 updated by ouzhili
--      Add an enumeration vlanlist(3) to object hpnicfDomainVlanAssignMode
-- V1.5 2008.12.30 updated by dupengfei
--      Add hpnicfDomainCurrentAccessNum
-- V1.6 2009.08.05 updated by huxiulan
--      Add an enumeration reserved(12) to object hpnicfAccessModeofDomainScheme
-- V1.7 2012.05.20 updated by qiuchunxia
--      Add hpnicfDomainIdleCutTime
--      2012.10.15 updated by liubo
--      Add an enumeration ldap(5) to object hpnicfDomainSchemeMode
-- V1.8 2013.02.28 updated by xuyonggang
--      change hpnicfDomainSchemeAccessMode
-- V1.9 2013.4.25 updated by qiuchunxia
--      Delete the range of hpnicfDomainIdleCutMaxTime
-- V2.0 2013.11.25 updated by zhangdexu
--      change the range of hpnicfDomainDefault and hpnicfDomainName
-- ==================================================================
HPN-ICF-DOMAIN-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        hpnicfCommon
            FROM HPN-ICF-OID-MIB
        Integer32, OBJECT-TYPE, MODULE-IDENTITY, TimeTicks
            FROM SNMPv2-SMI
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
        RowStatus, TruthValue, TEXTUAL-CONVENTION
            FROM SNMPv2-TC;

    hpnicfDomain MODULE-IDENTITY
        LAST-UPDATED "201210150000Z"            -- October 15, 2012 at 00:00 GMT
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "The MIB module is used for managing domain."
    ::= { hpnicfCommon 46 }

    HpnicfModeOfDomainScheme ::= 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.
        ldap:indicates the domain will use ldap scheme."
        SYNTAX INTEGER
        {
            none(1),
            local(2),
            radius(3),
            tacacs(4),
            ldap(5)
        }

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

  HpnicfAccessModeofDomainScheme ::= 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),
            reserved(12)
        }

    hpnicfDomainControl OBJECT IDENTIFIER ::= { hpnicfDomain 1 }

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


    hpnicfDomainTables OBJECT IDENTIFIER ::= { hpnicfDomain 2 }

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

    hpnicfDomainInfoEntry OBJECT-TYPE
        SYNTAX  HpnicfDomainInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing a domain."
        INDEX { hpnicfDomainName }
    ::= { hpnicfDomainInfoTable 1 }

    HpnicfDomainInfoEntry ::= SEQUENCE {
        hpnicfDomainName                   OCTET STRING,
        hpnicfDomainState                  INTEGER,
        hpnicfDomainMaxAccessNum           Integer32,
        hpnicfDomainVlanAssignMode         INTEGER,
        hpnicfDomainIdleCutEnable          TruthValue,
        hpnicfDomainIdleCutMaxTime         Integer32,
        hpnicfDomainIdleCutMinFlow         Integer32,
        hpnicfDomainMessengerEnable        TruthValue,
        hpnicfDomainMessengerLimitTime     Integer32,
        hpnicfDomainMessengerSpanTime      Integer32,
        hpnicfDomainSelfServiceEnable      TruthValue,
        hpnicfDomainSelfServiceURL         OCTET STRING,
        hpnicfDomainAccFailureAction       INTEGER,
        hpnicfDomainRowStatus              RowStatus,
        hpnicfDomainCurrentAccessNum       Integer32,
        hpnicfDomainIdleCutTime            TimeTicks }

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

    hpnicfDomainState   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."
    ::= { hpnicfDomainInfoEntry  2 }

    hpnicfDomainMaxAccessNum   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."
    ::= { hpnicfDomainInfoEntry  3 }

    hpnicfDomainVlanAssignMode   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."
    ::= { hpnicfDomainInfoEntry  4 }

    hpnicfDomainIdleCutEnable   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 hpnicfDomainIdleCutMinFlow and lasts
        hpnicfDomainIdleCutMaxTime. Default value is false."
    ::= { hpnicfDomainInfoEntry  5 }

    hpnicfDomainIdleCutMaxTime   OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "The maximal time of idle-cut.  The unit is minute.  If the value of
        hpnicfDomainIdleCutEnable is false, the value of hpnicfDomainIdleCutMaxTime
        is meaningless."
    ::= { hpnicfDomainInfoEntry  6 }

    hpnicfDomainIdleCutMinFlow   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
        hpnicfDomainIdleCutEnable is false, the value of hpnicfDomainIdleCutMinFlow
        is meaningless."
    ::= { hpnicfDomainInfoEntry  7 }

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

    hpnicfDomainMessengerLimitTime   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
        hpnicfDomainMessengerEnable is false, the value of hpnicfDomainMessengerLimitTime
        is meaningless."
    ::= { hpnicfDomainInfoEntry  9 }

    hpnicfDomainMessengerSpanTime   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 hpnicfDomainMessengerEnable is false,
        the value of hpnicfDomainMessengerSpanTime is meaningless."
    ::= { hpnicfDomainInfoEntry  10 }

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

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

    hpnicfDomainAccFailureAction   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."
    ::= { hpnicfDomainInfoEntry  13 }

    hpnicfDomainRowStatus   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."
    ::= { hpnicfDomainInfoEntry 14 }

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

    hpnicfDomainIdleCutTime   OBJECT-TYPE
        SYNTAX TimeTicks
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "Authentication aging time.  If no packet is transmitted during the aging time,
        the authentication is aged out."
    ::= { hpnicfDomainInfoEntry  16 }

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

    hpnicfDomainSchemeEntry OBJECT-TYPE
        SYNTAX  HpnicfDomainSchemeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing an IP pool of a domain"
        INDEX { hpnicfDomainName, hpnicfDomainSchemeIndex }
    ::= { hpnicfDomainSchemeTable 1 }

    HpnicfDomainSchemeEntry ::= SEQUENCE {
        hpnicfDomainSchemeIndex            Integer32,
        hpnicfDomainSchemeMode             HpnicfModeOfDomainScheme,
        hpnicfDomainAuthSchemeName         OCTET STRING,
        hpnicfDomainAcctSchemeName         OCTET STRING,
        hpnicfDomainSchemeRowStatus        RowStatus,
        hpnicfDomainSchemeAAAType          HpnicfAAATypeDomainScheme,
        hpnicfDomainSchemeAAAName          OCTET STRING,
        hpnicfDomainSchemeAccessMode       HpnicfAccessModeofDomainScheme
        }

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

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

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

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

    hpnicfDomainSchemeRowStatus   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, hpnicfDomainSchemeMode must be specified. To destroy an existent
        row, the scheme of the row MUST NOT be used by user."
    ::= { hpnicfDomainSchemeEntry  5 }

    hpnicfDomainSchemeAAAType    OBJECT-TYPE
        SYNTAX     HpnicfAAATypeDomainScheme
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "Service Type of the server."
   ::= { hpnicfDomainSchemeEntry  6 }

    hpnicfDomainSchemeAAAName       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 hpnicfDomainSchemeAAAType.
          The value of the object must be valid if the value of hpnicfDomainSchemeMode
          is radius or tacacs, the value of the object will be ignored if the value
          of hpnicfDomainSchemeMode is none or local. If the domain has no scheme,
          there will be a null string. If this object is supported, the objects
          hpnicfDomainAuthSchemeName and hpnicfDomainAcctSchemeName will be ignored."
    ::= { hpnicfDomainSchemeEntry  7 }

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

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

    hpnicfDomainIpPoolEntry OBJECT-TYPE
        SYNTAX  HpnicfDomainIpPoolEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "An entry (conceptual row) representing an IP pool of a domain."
        INDEX { hpnicfDomainName, hpnicfDomainIpPoolNum }
    ::= { hpnicfDomainIpPoolTable 1 }

    HpnicfDomainIpPoolEntry ::= SEQUENCE {
        hpnicfDomainIpPoolNum              Integer32,
        hpnicfDomainIpPoolLowIpAddrType    InetAddressType,
        hpnicfDomainIpPoolLowIpAddr        InetAddress,
        hpnicfDomainIpPoolLen              Integer32,
        hpnicfDomainIpPoolRowStatus        RowStatus }


    hpnicfDomainIpPoolNum   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."
    ::= { hpnicfDomainIpPoolEntry 1 }


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


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


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

   hpnicfDomainIpPoolRowStatus   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, hpnicfDomainIpPoolNum and hpnicfDomainIpPoolLowIpAddr must be specified.
        To destroy an existent row, the IP pool of this row MUST NOT be used by user."
    ::= { hpnicfDomainIpPoolEntry 5 }
END
