-- =================================================================
-- Copyright (C) 2009 by H3C Technologies.  All rights reserved.
--
-- Description: DNS MIB File
-- Reference:
-- Version: V1.0
-- History:
--      V1.0 created by jiangshuaihua
--      initial version 2009-02-12
-- =================================================================
H3C-DNS-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        MODULE-IDENTITY, OBJECT-TYPE, Integer32
            FROM SNMPv2-SMI
        RowStatus
            FROM SNMPv2-TC
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
        h3cCommon
            FROM HUAWEI-3COM-OID-MIB;

    h3cDns MODULE-IDENTITY
        LAST-UPDATED
            "200902120000Z"
        ORGANIZATION
            "Hangzhou H3C Tech. 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
            "This MIB contains objects to manage the DNS."
        REVISION
            "200902120000Z"
        DESCRIPTION
            " "
        ::= { h3cCommon 97 }

-- Objects define
    h3cDnsObjects OBJECT IDENTIFIER ::= { h3cDns 1 }

-- DNS static server IP table
    h3cDnsStaticSrvIpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cDnsStaticSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This table is a list of DNS static server IPv4 address
            configuration, which is manually specified.
            "
       ::= { h3cDnsObjects 1 }

    h3cDnsStaticSrvIpEntry OBJECT-TYPE
        SYNTAX      H3cDnsStaticSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            An entry of h3cDnsStaticSrvIpTable.
            "
        INDEX
        {
            h3cDnsStaticSrvIpType,
            h3cDnsStaticSrvIpAddr
        }
        ::= { h3cDnsStaticSrvIpTable 1 }

    H3cDnsStaticSrvIpEntry ::=
        SEQUENCE {
        h3cDnsStaticSrvIpType       InetAddressType,
        h3cDnsStaticSrvIpAddr       InetAddress,
        h3cDnsStaticSrvIpPriority   Integer32,
        h3cDnsStaticSrvIpRowStatus  RowStatus
        }

    h3cDnsStaticSrvIpType          OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This node gives the type of the static DNS server IP address.
            "
        ::= { h3cDnsStaticSrvIpEntry 1 }

    h3cDnsStaticSrvIpAddr        OBJECT-TYPE
        SYNTAX      InetAddress (SIZE (1..64))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This node gives the IP address of the DNS server
            specified by the user.
            "
        ::= { h3cDnsStaticSrvIpEntry 2 }

    h3cDnsStaticSrvIpPriority          OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "
            This node gives the priority of the DNS server, according to the
            creation order.  The smaller the value is, the higher the priority
            level is.
            "
        ::= { h3cDnsStaticSrvIpEntry 3 }

    h3cDnsStaticSrvIpRowStatus      OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "
            This node gives the operation status of this table entry.
            "
        ::= { h3cDnsStaticSrvIpEntry 4 }

-- DNS dynamic server IP table
    h3cDnsDynamicSrvIpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cDnsDynamicSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This table is a list of DNS dynamic server IPv4 address
            configuration, which is dynamically obtained through DHCP.
            "
       ::= { h3cDnsObjects 2 }

    h3cDnsDynamicSrvIpEntry OBJECT-TYPE
        SYNTAX      H3cDnsDynamicSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry of h3cDnsDynamicSrvIpTable."
        INDEX
        {
           h3cDnsDynamicSrvIpType,
           h3cDnsDynamicSrvIpAddr
        }
        ::= { h3cDnsDynamicSrvIpTable 1 }

    H3cDnsDynamicSrvIpEntry ::=
        SEQUENCE
        {
            h3cDnsDynamicSrvIpType      InetAddressType,
            h3cDnsDynamicSrvIpAddr      InetAddress,
            h3cDnsDynamicSrvIpPriority  Integer32
        }

    h3cDnsDynamicSrvIpType          OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This node gives the type of the dynamic DNS server IP address.
            "
        ::= { h3cDnsDynamicSrvIpEntry 1 }

    h3cDnsDynamicSrvIpAddr          OBJECT-TYPE
        SYNTAX      InetAddress (SIZE (1..64))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            This node gives the IP address of the DNS server dynamically
            obtained through DHCP.
            "
        ::= { h3cDnsDynamicSrvIpEntry 2 }

    h3cDnsDynamicSrvIpPriority      OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "
            This node gives the priority of the DNS server, according to the
            order obtained through DHCP.  The smaller the value is, the higher
            the priority level is.
            "
        ::= { h3cDnsDynamicSrvIpEntry 3 }

-- Conformance define
    h3cDnsMIBConformance OBJECT IDENTIFIER ::= { h3cDns 2 }

        h3cDnsMIBCompliances OBJECT IDENTIFIER ::= { h3cDnsMIBConformance 1 }

        h3cDnsMIBCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
                "
                The compliance statement for entities which implement
                the DNS MIB.
                "
            MODULE -- this module
                MANDATORY-GROUPS
                {
                    h3cDnsStaticSrvIpGroup,
                    h3cDnsDynamicSrvIpGroup
                }
            ::= { h3cDnsMIBCompliances 1 }

        h3cDnsMIBGroups OBJECT IDENTIFIER ::= { h3cDnsMIBConformance 2 }

        h3cDnsStaticSrvIpGroup OBJECT-GROUP
            OBJECTS
            {
                h3cDnsStaticSrvIpPriority,
                h3cDnsStaticSrvIpRowStatus
            }
            STATUS current
            DESCRIPTION
                "
                A collection of objects providing mandatory DNS server IP
                addresses manually specified.
                "
            ::= { h3cDnsMIBGroups 1 }

        h3cDnsDynamicSrvIpGroup OBJECT-GROUP
            OBJECTS { h3cDnsDynamicSrvIpPriority }
            STATUS current
            DESCRIPTION
                "
                A collection of objects providing mandatory DNS server IP
                addresses dynamically obtained through DHCP.
                "
            ::= { h3cDnsMIBGroups 2 }
END
