-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: DNS MIB File
-- Reference:
-- Version: V1.0
-- History:
--      V1.0 created by jiangshuaihua
--      initial version 2009-02-12
-- =================================================================
HPN-ICF-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
        hpnicfCommon
            FROM HPN-ICF-OID-MIB;

    hpnicfDns MODULE-IDENTITY
        LAST-UPDATED
            "200902120000Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "This MIB contains objects to manage the DNS."
        REVISION
            "200902120000Z"
        DESCRIPTION
            " "
        ::= { hpnicfCommon 97 }

-- Objects define
    hpnicfDnsObjects OBJECT IDENTIFIER ::= { hpnicfDns 1 }

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

    hpnicfDnsStaticSrvIpEntry OBJECT-TYPE
        SYNTAX      HpnicfDnsStaticSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "
            An entry of hpnicfDnsStaticSrvIpTable.
            "
        INDEX
        {
            hpnicfDnsStaticSrvIpType,
            hpnicfDnsStaticSrvIpAddr
        }
        ::= { hpnicfDnsStaticSrvIpTable 1 }

    HpnicfDnsStaticSrvIpEntry ::=
        SEQUENCE {
        hpnicfDnsStaticSrvIpType       InetAddressType,
        hpnicfDnsStaticSrvIpAddr       InetAddress,
        hpnicfDnsStaticSrvIpPriority   Integer32,
        hpnicfDnsStaticSrvIpRowStatus  RowStatus
        }

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

    hpnicfDnsStaticSrvIpAddr        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.
            "
        ::= { hpnicfDnsStaticSrvIpEntry 2 }

    hpnicfDnsStaticSrvIpPriority          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.
            "
        ::= { hpnicfDnsStaticSrvIpEntry 3 }

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

-- DNS dynamic server IP table
    hpnicfDnsDynamicSrvIpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDnsDynamicSrvIpEntry
        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.
            "
       ::= { hpnicfDnsObjects 2 }

    hpnicfDnsDynamicSrvIpEntry OBJECT-TYPE
        SYNTAX      HpnicfDnsDynamicSrvIpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry of hpnicfDnsDynamicSrvIpTable."
        INDEX
        {
           hpnicfDnsDynamicSrvIpType,
           hpnicfDnsDynamicSrvIpAddr
        }
        ::= { hpnicfDnsDynamicSrvIpTable 1 }

    HpnicfDnsDynamicSrvIpEntry ::=
        SEQUENCE
        {
            hpnicfDnsDynamicSrvIpType      InetAddressType,
            hpnicfDnsDynamicSrvIpAddr      InetAddress,
            hpnicfDnsDynamicSrvIpPriority  Integer32
        }

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

    hpnicfDnsDynamicSrvIpAddr          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.
            "
        ::= { hpnicfDnsDynamicSrvIpEntry 2 }

    hpnicfDnsDynamicSrvIpPriority      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.
            "
        ::= { hpnicfDnsDynamicSrvIpEntry 3 }

-- Conformance define
    hpnicfDnsMIBConformance OBJECT IDENTIFIER ::= { hpnicfDns 2 }

        hpnicfDnsMIBCompliances OBJECT IDENTIFIER ::= { hpnicfDnsMIBConformance 1 }

        hpnicfDnsMIBCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
                "
                The compliance statement for entities which implement
                the DNS MIB.
                "
            MODULE -- this module
                MANDATORY-GROUPS
                {
                    hpnicfDnsStaticSrvIpGroup,
                    hpnicfDnsDynamicSrvIpGroup
                }
            ::= { hpnicfDnsMIBCompliances 1 }

        hpnicfDnsMIBGroups OBJECT IDENTIFIER ::= { hpnicfDnsMIBConformance 2 }

        hpnicfDnsStaticSrvIpGroup OBJECT-GROUP
            OBJECTS
            {
                hpnicfDnsStaticSrvIpPriority,
                hpnicfDnsStaticSrvIpRowStatus
            }
            STATUS current
            DESCRIPTION
                "
                A collection of objects providing mandatory DNS server IP
                addresses manually specified.
                "
            ::= { hpnicfDnsMIBGroups 1 }

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