-- ==========================================================================
-- Copyright (c) 2004-2016 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: The purpose of this MIB file is to provide the object definition
--              of the SNMP (Simple Network Management Protocol) extended
--              information.
-- Reference:
-- Version: V1.6
-- History:
-- V1.0 2009-04-07  Initial version, created by Lisong
-- V1.1 2010-03-12  Added h3cSnmpExtReadCommunitySingle and
--                  h3cSnmpExtWriteCommunitySingle by SongHao
-- V1.2 2011-08-11  Added h3cSnmpCommunityExTable by duyanbing
-- V1.3 2013-04-08  Changed MAX-ACCESS of h3cSnmpCommunityExName by duyanbing
-- V1.4 2013-05-16  Added h3cSnmpExtMaxContextNum and
--                  h3cSnmpExtContextTable by gaoyanping
-- V1.5 2014-08-12  Added h3cSnmpExtCommunityIPv6AclNum and h3cSnmpExtVersion,
--                  modified description of h3cSnmpExtCommunityAclNum by SongHao.
--      2015-01-20  Added h3cSnmpExtTrapSource and h3cSnmpExtInformSource by gaoyanping.
-- V1.6 2016-04-13  Added h3cSnmpExtPrivProtocols by gaoyanping.
--      2016-08-08  Modify h3cSnmpExtCommunityAclNum, h3cSnmpExtCommunityIPv6AclNum
--                  of the range by zhangbaohong
-- ==========================================================================
H3C-SNMP-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        TruthValue, RowStatus
    FROM SNMPv2-TC
        OBJECT-TYPE, MODULE-IDENTITY, Integer32, OBJECT-IDENTITY
    FROM SNMPv2-SMI
        SnmpAdminString, SnmpSecurityModel
    FROM SNMP-FRAMEWORK-MIB
        h3cCommon
    FROM HUAWEI-3COM-OID-MIB;

h3cSnmpExt MODULE-IDENTITY
    LAST-UPDATED "201608080000Z"
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         Http://www.h3c.com
         Zip: 100085"
    DESCRIPTION
        "This MIB file is to provide the object definition of the SNMP extended
         information."
    REVISION "201608080000Z"
    DESCRIPTION
        "Modify h3cSnmpExtCommunityAclNum, h3cSnmpExtCommunityIPv6AclNum of the range"
    REVISION "201604130200Z"
    DESCRIPTION
        "Added h3cSnmpExtPrivProtocols."
    REVISION "201501200900Z"
    DESCRIPTION
        "Added h3cSnmpExtTrapSource and h3cSnmpExtInformSource."
    REVISION "201408120303Z"
    DESCRIPTION
        "Added h3cSnmpExtCommunityIPv6AclNum and h3cSnmpExtVersion,
        modified description of h3cSnmpExtCommunityAclNum."
    REVISION "201305160000Z"
    DESCRIPTION
        "Added h3cSnmpExtMaxContextNum and h3cSnmpExtContextTable."
    REVISION "201304080000Z"
    DESCRIPTION
        "Changed MAX-ACCESS of h3cSnmpCommunityExName."
    REVISION "201108110000Z"
    DESCRIPTION
        "Added h3cSnmpCommunityExTable."
    REVISION "201003120000Z"
    DESCRIPTION
        "Added h3cSnmpExtReadCommunitySingle and h3cSnmpExtWriteCommunitySingle."
    REVISION "200904071700Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { h3cCommon 104 }
--
-- Object definitions
--
h3cSnmpExtScalarObjects OBJECT IDENTIFIER ::= { h3cSnmpExt 1 }

h3cSnmpExtTables        OBJECT IDENTIFIER ::= { h3cSnmpExt 2 }

h3cSnmpExtNotifications OBJECT IDENTIFIER ::= { h3cSnmpExt 3 }

h3cSnmpExtPrivProtocols OBJECT IDENTIFIER ::= { h3cSnmpExt 4 }

--
-- Scalar Objects
--
    h3cSnmpExtSnmpChannel OBJECT-TYPE
        SYNTAX          Integer32(1..65535)
        MAX-ACCESS      read-write
        STATUS current
        DESCRIPTION
            "The channel number used by SNMP."
        DEFVAL { 161 }
        ::= { h3cSnmpExtScalarObjects 1 }

    h3cSnmpExtReadCommunitySingle OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..32))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The first read community."
        ::= { h3cSnmpExtScalarObjects 2 }

    h3cSnmpExtWriteCommunitySingle OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..32))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The first write community."
        ::= { h3cSnmpExtScalarObjects 3 }

    h3cSnmpExtMaxContextNum OBJECT-TYPE
        SYNTAX          Integer32(1..65535)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The maximum number of contexts."
        ::= { h3cSnmpExtScalarObjects 4 }

    h3cSnmpExtVersion OBJECT-TYPE
        SYNTAX          BITS {snmpV1(0), snmpV2c(1), snmpV3(2)}
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The valid version of SNMP agent."
        ::= { h3cSnmpExtScalarObjects 5 }

    h3cSnmpExtTrapSource OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The specified interface, the SNMP agent used the
                        primary IP address of which as the source IP address
                        in all its traps."
        ::= { h3cSnmpExtScalarObjects 6 }

    h3cSnmpExtInformSource OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The specified interface, the SNMP agent used the
                        primary IP address of which as the source IP address
                        in all its informs."
        ::= { h3cSnmpExtScalarObjects 7 }
--
-- Table Objects
--
    h3cSnmpExtCommunityTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3cSnmpExtCommunityEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "Modify the extended properties of SNMP community or
                         user."
        ::= { h3cSnmpExtTables 1 }

    h3cSnmpExtCommunityEntry OBJECT-TYPE
        SYNTAX          H3cSnmpExtCommunityEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of h3cSnmpExtCommunityTable."
        INDEX {
                h3cSnmpExtCommunitySecurityLevel,
                h3cSnmpExtCommunitySecurityName
              }
        ::= { h3cSnmpExtCommunityTable 1 }

    H3cSnmpExtCommunityEntry ::= SEQUENCE {
        h3cSnmpExtCommunitySecurityLevel   SnmpSecurityModel,
        h3cSnmpExtCommunitySecurityName    SnmpAdminString,
        h3cSnmpExtCommunityName            OCTET STRING,
        h3cSnmpExtCommunityAclNum          Integer32,
        h3cSnmpExtCommunityIPv6AclNum      Integer32
    }

    h3cSnmpExtCommunitySecurityLevel OBJECT-TYPE
        SYNTAX          SnmpSecurityModel
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The security model of the specified community or user.
                         This object may not take the 'any' (0) value."
        ::= { h3cSnmpExtCommunityEntry 1 }

    h3cSnmpExtCommunitySecurityName OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..32))
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The security name of the specified community or user."
        ::= { h3cSnmpExtCommunityEntry 2 }

    h3cSnmpExtCommunityName OBJECT-TYPE
        SYNTAX          OCTET STRING(SIZE(1..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The name of the group to which the security name belongs."
        ::= { h3cSnmpExtCommunityEntry 3 }

    h3cSnmpExtCommunityAclNum OBJECT-TYPE
        SYNTAX          Integer32 (0 | 2000..3999)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The specified IPv4 ACL (Access Control List) number
                        used by the community or the user.
                        Basic ACL type: 2000..2999
                        Advanced ACL type: 3000..3999
                        "
        DEFVAL          { 0 }
        ::= { h3cSnmpExtCommunityEntry 4 }

    h3cSnmpExtCommunityIPv6AclNum OBJECT-TYPE
        SYNTAX          Integer32 (0 | 2000..3999)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The specified IPv6 Access Control List (ACL) number
                        used by the community or the user.
                        Basic ACL type: 2000..2999
                        Advanced ACL type: 3000..3999
                        "
        DEFVAL          { 0 }
        ::= { h3cSnmpExtCommunityEntry 5 }

    h3cSnmpCommunityExTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3cSnmpCommunityExEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "Modify the extended properties of SNMP community."
        ::= { h3cSnmpExtTables 2 }

    h3cSnmpCommunityExEntry OBJECT-TYPE
        SYNTAX          H3cSnmpCommunityExEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of h3cSnmpCommunityExTable."
        INDEX {
                 h3cSnmpCommunityExName
              }
        ::= { h3cSnmpCommunityExTable 1 }

    H3cSnmpCommunityExEntry ::= SEQUENCE {
        h3cSnmpCommunityExName
            OCTET STRING,
        h3cSnmpCommunityExWrite
            TruthValue,
        h3cSnmpCommunityExViewName
            OCTET STRING,
        h3cSnmpCommunityExAclNum
            Integer32,
        h3cSnmpCommunityExRowStatus
            RowStatus
    }

    h3cSnmpCommunityExName OBJECT-TYPE
        SYNTAX          OCTET STRING(SIZE(1..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The specified community name."
        ::= { h3cSnmpCommunityExEntry 1 }

    h3cSnmpCommunityExWrite OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
        "Represents the community can write or not.
        'true' : the community can write.
        'false': the community can read only."
        DEFVAL      { false }
        ::= { h3cSnmpCommunityExEntry 2 }

    h3cSnmpCommunityExViewName OBJECT-TYPE
        SYNTAX          OCTET STRING(SIZE(1..32))
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "A family of view subtrees that the Community can operate."
        ::= { h3cSnmpCommunityExEntry 3 }

    h3cSnmpCommunityExAclNum OBJECT-TYPE
        SYNTAX          Integer32 (0|2000..2999)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The specified ACL (Access Control List) number used by the community."
        DEFVAL          {0}
        ::= { h3cSnmpCommunityExEntry 4 }

    h3cSnmpCommunityExRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The status of this table entry."
        ::= { h3cSnmpCommunityExEntry 5 }

    h3cSnmpExtContextTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3cSnmpExtContextEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "Modify the extended properties of SNMP context."
        ::= { h3cSnmpExtTables 3 }

    h3cSnmpExtContextEntry OBJECT-TYPE
        SYNTAX          H3cSnmpExtContextEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of h3cSnmpExtContextTable."
        INDEX {
                h3cSnmpExtContextName
              }
        ::= { h3cSnmpExtContextTable 1 }

    H3cSnmpExtContextEntry ::= SEQUENCE {
        h3cSnmpExtContextName
            SnmpAdminString,
        h3cSnmpExtContextRowStatus
            RowStatus
     }

    h3cSnmpExtContextName OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE(1..32))
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The specified context name."
        ::= { h3cSnmpExtContextEntry 1 }

    h3cSnmpExtContextRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The status of this table entry."
        ::= { h3cSnmpExtContextEntry 2 }

--
-- Notification Objects
--

--
-- PrivProtocols
--
    h3cSnmpExtAESCfb192PrivProtocol OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION  "The CFB192-AES-192 privacy protocol."
    REFERENCE    "- Specification for the ADVANCED ENCRYPTION
                    STANDARD .

                  - Use 192 bit key size AES.
                 "
    ::= { h3cSnmpExtPrivProtocols 1 }

    h3cSnmpExtAESCfb256PrivProtocol OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION  "The CFB256-AES-256 privacy protocol."
    REFERENCE    "- Specification for the ADVANCED ENCRYPTION
                    STANDARD.

                  - Use 256 bit key size AES.
                 "
    ::= { h3cSnmpExtPrivProtocols 2 }

END
