-- Copyright (C) 2011-2012 Aricent Group . All Rights Reserved

-- $Id: fsdns.mib,v 1.6 2014/10/13 12:08:08 siva Exp $

  ARICENT-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
    dnsResCacheRREntry FROM DNS-RESOLVER-MIB;

  fsDns MODULE-IDENTITY
         LAST-UPDATED "201209050000Z"
         ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
         CONTACT-INFO "support@aricent.com" 
         DESCRIPTION
            " The proprietary MIB module for DNS Resolver. "
         REVISION "201209050000Z" 
         DESCRIPTION
            " The proprietary MIB module for DNS Resolver. "
      ::=  { enterprises aricent-communication-holding-ltd(29601) iss(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 }
	fsDnsCache            OBJECT IDENTIFIER ::= { fsDns 6 }

-- *****************************************************************************
--              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 }

       fsDnsResolverMode OBJECT-TYPE
         SYNTAX     INTEGER { simultaneous(1), sequential(2) }
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
           "This object specifies the mode in which DNS Resolver
            operates when sending queries to name servers. If the value 
            is set as simultaneous(1), resolver sends a query to the configured
            name servers simultaneously. The first response from any
            server is cached and rest of them are ignored. If the value is set 
            as sequential(2), resolver sends a query to the configured name 
            servers in a sequential manner."
         DEFVAL { simultaneous }
         ::= { fsDnsSystem 6 }

       fsDnsPreferentialType OBJECT-TYPE
         SYNTAX     INTEGER
                          {
                              ipv4(1),
                              ipv6(2),
                              both(3)
                          }
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
           "This object specifies the preferential type of resolving the hostname.
            If the value is set as ipv4(1), resolves hostname to ipv4 address.
            If the value is set as ipv6(2), resolves hostname to ipv6 address.
            If the value is set as both, resolves hostname to both ipv4 and ipv6 address."
         DEFVAL { both }
         ::= { fsDnsSystem 7 }

-- 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..128))
           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}

-- *******************************************************************
--  Resolver Cache Table extension - Starts
-- *******************************************************************

   fsDnsResCacheRRTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF FsDnsResCacheRREntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "This Table is a proprietary extension to the 
          standard dnsResCacheRRTable."
      ::= { fsDnsCache 1 }

   fsDnsResCacheRREntry OBJECT-TYPE
      SYNTAX       FsDnsResCacheRREntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
          "An entry in the fsDnsResCacheRRTable contains the
           additional operational characteristics of Dns Resolver
           apart from dnsResCacheRRTable."
      AUGMENTS    { dnsResCacheRREntry }
      ::= { fsDnsResCacheRRTable 1 }

   FsDnsResCacheRREntry ::=
      SEQUENCE {
         fsDnsResCacheRRSource
             InetAddress
   }
   fsDnsResCacheRRSource OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "Host from which RR was received."
       ::= { fsDnsResCacheRREntry 1 }

END
