-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fsdns.mib,v 1.3 2012/09/07 09:52:05 siva Exp $

  SUPERMICRO-DNS-RESOLVER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    DisplayString, RowStatus FROM SNMPv2-TC
    OBJECT-TYPE, MODULE-IDENTITY,Integer32,
    Counter32, Unsigned32,
    enterprises            FROM SNMPv2-SMI
    InetAddress, InetAddressType     FROM INET-ADDRESS-MIB;

  fsDns MODULE-IDENTITY
         LAST-UPDATED "201209050000Z"
         ORGANIZATION "Super Micro Computer Inc."
         CONTACT-INFO "support@Supermicro.com" 
         DESCRIPTION
            " The proprietary MIB module for DNS Resolver. "
         REVISION "201209050000Z" 
         DESCRIPTION
            " The proprietary MIB module for DNS Resolver. "
      ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) basic(2) 99 }

-- *****************************************************************************
--              subtrees in the DNS Resolver MIB
-- *****************************************************************************
    fsDnsSystem           OBJECT IDENTIFIER ::= { fsDns 1 }
    fsDnsNameServer       OBJECT IDENTIFIER ::= { fsDns 2 }
    fsDnsDomain           OBJECT IDENTIFIER ::= { fsDns 3 }
    fsDnsQuery            OBJECT IDENTIFIER ::= { fsDns 4 }
    fsDnsStatistics       OBJECT IDENTIFIER ::= { fsDns 5 }

-- *****************************************************************************
--              fsDnsSystem  SubTree
-- *****************************************************************************

      fsDnsSystemControl OBJECT-TYPE
          SYNTAX      INTEGER  { start(1), shutdown(2) }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
              "The administrative system control status of DNS
               Resolver module. The value 'start' (1) indicates that all
               resources required by DNS Resolver module should be allocated.
               The value 'shutdown' (2) indicates that DNS Resolver should be
               shutdown in the device and all allocated memory 
               must be released."
          DEFVAL  { start }
          ::= { fsDnsSystem 1 }  

      fsDnsModuleStatus OBJECT-TYPE
          SYNTAX      INTEGER  { enabled(1), disabled(2) }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
             "The administrative module status of DNS Resolver Module.
              This enables or disables DNS Resolver in the system. A value of
              'enabled' (1) indicates that DNS Resolver is enabled in the device.
              A value of 'disabled' (2) indicates that DNS Resolver is disabled 
              in the device."
          DEFVAL  { enabled }
          ::= { fsDnsSystem 2 }

       fsDnsTraceOption OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
             "This object is used to enable trace statements in
              DNS Resolver Module.
              A four byte integer is used for enabling the trace level.
              Each bit in the four byte integer represents a particular
              trace level.
              The mapping between the bit positions & the trace level is
              as follows:
                  Bit 1 - Init and Shutdown traces
                  Bit 2 - Management traces
                  Bit 3 - Data Path traces
                  Bit 4 - Control Plane traces
                  Bit 5 - Packet Dump traces
                  Bit 6 - Traces related to all resources except buffers
                  Bit 7 - All Failure traces
                  Bit 8 - Buffer allocation/release traces

               The remaining bits are unused. Combination of levels are
              also allowed.

              For example if the bits 1 and 2 are set, then the trace
              statement related to Management and Data Path related
              messages will be printed.

              The user has to enter the corresponding integer value for the
              bits set. For example if bits 1 and 2 are to be set ,then user
              has to give the value 0x0003."
            DEFVAL { 0 }
            ::= { fsDnsSystem 3 }
               
       fsDnsQueryRetryCount OBJECT-TYPE
         SYNTAX     Unsigned32 (1..10)
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
           "This object is used to specify the maximum number of times
            the resolver can try to retransmit the Query to the Server "
         DEFVAL { 1 }
         ::= { fsDnsSystem 4 }

       fsDnsQueryTimeOut OBJECT-TYPE
         SYNTAX     Unsigned32 (1..100)
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
           "This object is used to specify the time period in seconds for
            which the resolver can wait for the response for the Query
            sent to the Server "
         DEFVAL { 5 }
         ::= { fsDnsSystem 5 }

  
-- fsDnsNameServerTable

-- This table is for configuring the Name Server List (SLIST)
 
       fsDnsNameServerTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF FsDnsNameServerEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
             "A table containing the Name Server List (SLIST)"
         ::= { fsDnsNameServer 1}

       fsDnsNameServerEntry OBJECT-TYPE
         SYNTAX        FsDnsNameServerEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "Name Server List SLIST Entries "
         INDEX { fsDnsNameServerIndex }
         ::= { fsDnsNameServerTable 1 }

         FsDnsNameServerEntry ::=
          SEQUENCE {
                    fsDnsNameServerIndex Unsigned32,
                    fsDnsServerIPAddressType InetAddressType,
                    fsDnsServerIPAddress InetAddress,
                    fsDnsNameServerRowStatus RowStatus
                   }

       fsDnsNameServerIndex OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            " An arbitrary integer value, greater than zero, 
              which uniquely identifies a Name Server"
         ::= { fsDnsNameServerEntry 1 }

       fsDnsServerIPAddressType OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The type of object that represents the Name server's Ip address"
         ::= { fsDnsNameServerEntry 2 }

       fsDnsServerIPAddress OBJECT-TYPE      
         SYNTAX       InetAddress (SIZE(4..16))
         MAX-ACCESS   read-create   
         STATUS       current
         DESCRIPTION
           "The Object represents the Name server's Ip Address"
         ::= { fsDnsNameServerEntry 3 }

        fsDnsNameServerRowStatus OBJECT-TYPE
           SYNTAX        RowStatus
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
             "Specifies the Row Status of the Name Server table"
          ::= { fsDnsNameServerEntry 4 }

-- fsDnsDomainNameTable

-- This table is for configuring the Domain Name List
 
       fsDnsDomainNameTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF FsDnsDomainNameEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
             "A table containing the Domain Name List"
         ::= { fsDnsDomain 1}

       fsDnsDomainNameEntry OBJECT-TYPE
         SYNTAX        FsDnsDomainNameEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "Domain Name List Entries "
         INDEX { fsDnsDomainNameIndex }
         ::= { fsDnsDomainNameTable 1 }

         FsDnsDomainNameEntry ::=
          SEQUENCE {
                    fsDnsDomainNameIndex Unsigned32,
                    fsDnsDomainName DisplayString,
                    fsDnsDomainNameRowStatus RowStatus
                   }

       fsDnsDomainNameIndex OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
           " An arbitrary integer value, greater than zero, 
             which uniquely identifies a Domain Name"
         ::= { fsDnsDomainNameEntry 1 }

       fsDnsDomainName OBJECT-TYPE        
         SYNTAX      DisplayString (SIZE(1..64))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The type of object that represents the Domain Name"
         ::= { fsDnsDomainNameEntry 2 }

        fsDnsDomainNameRowStatus OBJECT-TYPE
           SYNTAX        RowStatus
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
             "Specifies the Row Status of the Domain Name"
          ::= { fsDnsDomainNameEntry 3 }

-- fsDnsQueryTable

        fsDnsQueryTable  OBJECT-TYPE
            SYNTAX      SEQUENCE OF FsDnsQueryEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
              "Displays the resolver's Pending Query Table."
            ::= { fsDnsQuery 1}

       fsDnsQueryEntry  OBJECT-TYPE
           SYNTAX      FsDnsQueryEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
               "Contains the information about a pending Queries"
           INDEX { fsDnsQueryIndex }
           ::= { fsDnsQueryTable 1}

       FsDnsQueryEntry ::=
           SEQUENCE {
                      fsDnsQueryIndex Unsigned32,
                      fsDnsQueryName  DisplayString,
                      fsDnsQueryNSAddressType InetAddressType,
                      fsDnsQueryNSAddress InetAddress 
                   }

       fsDnsQueryIndex OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              " An arbitrary integer value, greater than zero, 
                which uniquely identifies a Query"
           ::= {fsDnsQueryEntry 1}   
       
       fsDnsQueryName OBJECT-TYPE 
           SYNTAX      DisplayString (SIZE(1..64))
           MAX-ACCESS  read-only      
           STATUS      current
           DESCRIPTION
              "The Query's FQDN(Fully Qualified Domain Name)"
           ::= {fsDnsQueryEntry 2}   

       fsDnsQueryNSAddressType OBJECT-TYPE
           SYNTAX       InetAddressType
           MAX-ACCESS   read-only
           STATUS       current
           DESCRIPTION
                "The type of Nameserver's address to which the query was sent"
           ::= {fsDnsQueryEntry 3}
 
       fsDnsQueryNSAddress OBJECT-TYPE
           SYNTAX      InetAddress (SIZE(4..16))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The Nameserver's address to which the query was sent"
           ::= {fsDnsQueryEntry 4}   

-- *****************************************************************************
--              fsDnsStatistics Sub Tree
-- *****************************************************************************

       fsDnsQueriesSent OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Queries sent by the resolver to the Name Server"
         ::= { fsDnsStatistics 1}

       fsDnsResponseReceived OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Response Received by the resolver from the Name Server"
         ::= { fsDnsStatistics 2}

       fsDnsDroppedResponse OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Response dropped by the resolver"
         ::= { fsDnsStatistics 3}
      
       fsDnsUnAnsweredQueries OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Queries sent to the Name Server for which the Response is 
            not yet received by the resolver"
         ::= { fsDnsStatistics 4}
        
       fsDnsFailedQueries OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Failed Queries sent to the Name Server for which response
             was not received "
         ::= { fsDnsStatistics 5}

       fsDnsReTransQueries OBJECT-TYPE
         SYNTAX       Counter32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
           " Number of Quereies Retransmitted to the Name Server"
         ::= { fsDnsStatistics 6}

END
