-- DHCP Server MIB overview:
-- DHCP Server MIB falls under lb6m MIB node of the private subtree.



NETGEAR-DHCPSERVER-PRIVATE-MIB DEFINITIONS ::= BEGIN

-- NETGEAR NETGEAR DHCP Server MIB
-- Copyright Netgear Inc (2002-2007) All rights reserved.

-- This SNMP Management Information Specification
-- embodies Netgear Inc's confidential and proprietary
-- intellectual property.  Netgear Inc retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", Netgear Inc
-- makes no warranty, either expressed or implied,
-- as to the use, operation, condition, or performance of the
-- Specification.



IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress,
    Integer32, Unsigned32, TimeTicks, Counter32
                                        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, RowPointer, MacAddress,
    StorageType, TruthValue             FROM SNMPv2-TC

    DisplayString, PhysAddress          FROM RFC1213-MIB
    lb6m                            FROM QUANTA-LB6M-REF-MIB;

    fastPathDHCPServerPrivate MODULE-IDENTITY
           LAST-UPDATED "201101260000Z" -- 26 January 2011 12:00:00 GMT
           ORGANIZATION "Netgear Inc"
           CONTACT-INFO ""
      DESCRIPTION
          "The Netgear Private MIB for NETGEAR DHCP Server"

      -- Revision history.
      REVISION
          "201101260000Z" -- 26 January 2011 12:00:00 GMT
      DESCRIPTION
          "Postal address updated."
      REVISION
          "200705230000Z" -- 23 May 2007 12:00:00 GMT
      DESCRIPTION
          "Netgear branding related changes."

      ::= { lb6m 12 }


     --**************************************************************************************
    -- agentDhcpServerGroup -> contains MIB objects displaying various properties of a DHCP server
    --
    --**************************************************************************************

    agentDhcpServerGroup       OBJECT IDENTIFIER ::= { fastPathDHCPServerPrivate 1 }

    agentDhcpServerAdminMode OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Admin-mode of the DHCP Server."
      DEFVAL { disable }
    ::= { agentDhcpServerGroup 1 }


    agentDhcpServerPingPktNos OBJECT-TYPE
      SYNTAX     INTEGER (0 | 2..10)
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " The no. of packets a DHCP Server sends to a pool address as part of a ping operation.Setting the value of ping-packets to zero turns off DHCP Server ping operation ."
      DEFVAL { 2 }
    ::= { agentDhcpServerGroup 2 }

    agentDhcpServerAutomaticBindingsNos OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of IP addresses that have been assigned automatically."
     
    ::= { agentDhcpServerGroup 3 }  
    
    agentDhcpServerExpiredBindingsNos OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of expired leases."     
    ::= { agentDhcpServerGroup 4 }   
    
    
    agentDhcpServerMalformedMessagesReceived OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of malformed(truncated or corrupt) messages that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 5 } 
    
    agentDhcpServerDISCOVERMessagesReceived OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPDISCOVER that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 6 } 
    
    agentDhcpServerREQUESTMessagesReceived OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPREQUEST that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 7 } 
    
    agentDhcpServerDECLINEMessagesReceived OBJECT-TYPE
      SYNTAX     Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPDECLINE that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 8 }  
    
    agentDhcpServerRELEASEMessagesReceived OBJECT-TYPE
      SYNTAX      Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPRELEASE that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 9 }
    
    agentDhcpServerINFORMMessagesReceived OBJECT-TYPE
      SYNTAX      Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPINFORM that have been received by the DHCP server."     
    ::= { agentDhcpServerGroup 10 }  
    
    agentDhcpServerOFFERMessagesSent OBJECT-TYPE
      SYNTAX      Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPOFFER that have been sent by the DHCP server."     
    ::= { agentDhcpServerGroup 11 }  
    
    agentDhcpServerACKMessagesSent OBJECT-TYPE
      SYNTAX      Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPACK that have been sent by the DHCP server."     
    ::= { agentDhcpServerGroup 12 } 
    
    agentDhcpServerNAKMessagesSent OBJECT-TYPE
      SYNTAX      Counter32 
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The no. of DHCP messages of type DHCPNAK that have been sent by the DHCP server."     
    ::= { agentDhcpServerGroup 13 }

    agentDhcpServerClearStatistics OBJECT-TYPE
           SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                       }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Clears the DHCP server statistics."
      DEFVAL { disable }
    ::= { agentDhcpServerGroup 14 } 
    
   agentDhcpServerBootpAutomatic OBJECT-TYPE
           SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                       }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       "Used to enable or disable autmatic address allocation to bootp clients from dynamic address pools."
      DEFVAL { disable }
    ::= { agentDhcpServerGroup 15 }

    agentDhcpServerDISCOVERMessagesDiscarded OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " The number of DHCP DISCOVER messages dropped by the DHCP Server due to the DHCP pool exhaustion or if the maximum number of allocations are done."
    ::= { agentDhcpServerGroup 16 }

--**********************************************************************************
-- agentDhcpServerPoolConfigGroup
--  This group contains three tables :  agentDhcpServerPoolConfigTable,
--                                      agentDhcpServerBindingTable,
--
--  agentDhcpServerPoolConfigTable -> This table is used to configure a
--                                     new DHCP address pool on a DHCP server. This table
--                                     is also used to delete a configured DHCP address pool.
--
--  agentDhcpServerPoolAllocationTable -> This table is used to configure a DHCP address
--                                  pool for dynamic and manual allocations.
--
--  agentDhcpServerExcludedAddressRangeTable -> This table lists the excluded-address ranges 
--  for a DHCP Server
--  
--  agentDhcpServerPoolOptionTable -> Table for DHCP Server options 
--**********************************************************************************


    agentDhcpServerPoolConfigGroup        OBJECT IDENTIFIER ::= { fastPathDHCPServerPrivate 2 }

    agentDhcpServerPoolNameCreate OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0|1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "A pool is created by applying write operation
                      on this MIB object and providing a new pool-name.
                      Get operation on this MIB object returns a
                      null-value, as for the purpose of viewing the
                      pool name, the user should perform the
                      traversal of agentDhcpServerPoolConfigTable.
                      For this reason the get operation on object
                      agentDhcpServerPoolNameCreate becomes insignificant."
 ::= { agentDhcpServerPoolConfigGroup 1 }

    agentDhcpServerPoolConfigTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerPoolConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server Pool configuration entries."
         ::= { agentDhcpServerPoolConfigGroup 2 }

    agentDhcpServerPoolConfigEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerPoolConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server pool."
         INDEX       { agentDhcpServerPoolIndex }
         ::= { agentDhcpServerPoolConfigTable 1 }

    AgentDhcpServerPoolConfigEntry ::= SEQUENCE {
          agentDhcpServerPoolIndex
              Unsigned32,
          agentDhcpServerPoolName
              DisplayString,
          agentDhcpServerPoolDefRouter
              DisplayString,
          agentDhcpServerPoolDNSServer
              DisplayString,
          agentDhcpServerPoolLeaseTime
              Integer32,
          agentDhcpServerPoolType
              INTEGER,
          agentDhcpServerPoolNetbiosNameServer
              DisplayString,
          agentDhcpServerPoolNetbiosNodeType
              INTEGER,
          agentDhcpServerPoolSNTPServer
              IpAddress,
          agentDhcpServerPoolNextServer
              IpAddress, 
          agentDhcpServerPoolDomainName
              DisplayString,
          agentDhcpServerPoolBootfile
              DisplayString,               
          agentDhcpServerPoolRowStatus
              RowStatus
          }

    agentDhcpServerPoolIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..512)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Pool Index, which 'll be used as index for the PoolConfig Table."
         ::= { agentDhcpServerPoolConfigEntry 1 }

     agentDhcpServerPoolName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Address pool. This value cannot be modified"
         ::= { agentDhcpServerPoolConfigEntry 2 }

     agentDhcpServerPoolDefRouter OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the default-router list(each default-router is
                      separated by comma and the list is terminated by semi-colon) for a DHCP client,
                      an example would be 10.10.1.1,192.168.36.1,157.227.44.1;(no spaces in between).User should enter  a 'null' or 'NULL' string to remove current default-router list."
         ::= { agentDhcpServerPoolConfigEntry 3 }

     agentDhcpServerPoolDNSServer OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the DNS IP servers(each DNS IP server is
                      separated by comma and the list is terminated by semi-colon) for a DHCP client,
                      an example would be 10.10.1.1,192.168.36.1,157.227.44.1;(no spaces in between).User should enter  a 'null' or 'NULL' string to remove current default-router list."
         ::= { agentDhcpServerPoolConfigEntry 4 }

     agentDhcpServerPoolLeaseTime OBJECT-TYPE
         SYNTAX      Integer32 (1..86400)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the duration of the lease(in minutes) for an IP address that is assigened from a
                      DHCP server to a DHCP client. For infinite leases, lease-time value will be set to
                      86400."
         ::= { agentDhcpServerPoolConfigEntry 5 }

     agentDhcpServerPoolType OBJECT-TYPE
         SYNTAX      INTEGER{
                     un-allocated(0),
                     dynamic(1),
                     manual(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the type of the binding that is associated with this pool."
         ::= { agentDhcpServerPoolConfigEntry 6 } 
         
     agentDhcpServerPoolNetbiosNameServer OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the IP address-list of Net BIOS name-servers that are 
                       available to DHCP clients
                       (each IP address in this list is
                       separated by comma and the list is terminated by semi-colon),
                       an example would be 10.10.1.1,192.168.36.1,157.227.44.1;(no spaces in between).User should enter  a 'null' or 'NULL' string to remove current Net BIOS name-server list."
         ::= { agentDhcpServerPoolConfigEntry 7 } 
         
      
     agentDhcpServerPoolNetbiosNodeType OBJECT-TYPE
         SYNTAX      INTEGER {
                         none(0),
                         b-node(1),
                         p-node(2),
                         m-node(4),
                         h-node(8)
                         }
                     
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the NetBIOS node-type for DHCP clients. 'none' is shown if 
                       node-type is not set to any of the four values."
         ::= { agentDhcpServerPoolConfigEntry 8 }
         
     agentDhcpServerPoolSNTPServer OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This configures the SNTP server in the boot-process of a DHCP clients.User should enter zero(0.0.0.0) to remove the current SNTP server address"
         ::= { agentDhcpServerPoolConfigEntry 9 }

     agentDhcpServerPoolNextServer OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This configures the next server in the boot-process of a DHCP clients.User should enter zero(0.0.0.0) to remove the current Next-server address"
         ::= { agentDhcpServerPoolConfigEntry 10 }
                                                  
     agentDhcpServerPoolDomainName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..255))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the domain-name for a DHCP client. User should enter a 'null' or 'NULL' string to remove specified domain-name."
         ::= { agentDhcpServerPoolConfigEntry 11 }
         
     agentDhcpServerPoolBootfile OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..128))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the name of the default boot image for a DHCP client.User should enter a 'null' or 'NULL' string to remove specified bootfile name."
         ::= { agentDhcpServerPoolConfigEntry 12 }
     
     agentDhcpServerPoolRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
         "The row status variable is used according to installation
          and removal conventions for conceptual rows. When a pool is created by applying write
          operation on 'agentDhcpServerPoolCreateName',row-status becomes 'active'. If row-status for
          a poolEntry is set to 'destroy', the corresponding pool gets deleted. "

         ::= { agentDhcpServerPoolConfigEntry 13 }

--**********************************************************************************
    agentDhcpServerPoolAllocationTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerPoolAllocationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server's pool entries, showing the binding(dynamic/manual)
                      specific parameters."
         ::= { agentDhcpServerPoolConfigGroup 3 }

    agentDhcpServerPoolAllocationEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerPoolAllocationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server's allocation pool."
         AUGMENTS { agentDhcpServerPoolConfigEntry }
         ::= { agentDhcpServerPoolAllocationTable 1 }

    -- All objects are of type read-write
    AgentDhcpServerPoolAllocationEntry ::= SEQUENCE {
          agentDhcpServerPoolAllocationName
              DisplayString,
          agentDhcpServerDynamicPoolIpAddress
              IpAddress,
          agentDhcpServerDynamicPoolIpMask
              IpAddress,
          agentDhcpServerDynamicPoolIpPrefixLength
              Unsigned32,
          agentDhcpServerPoolAllocationType
              INTEGER,
          agentDhcpServerManualPoolClientIdentifier
              DisplayString,
          agentDhcpServerManualPoolClientName
              DisplayString,
          agentDhcpServerManualPoolClientHWAddr
              DisplayString,
          agentDhcpServerManualPoolClientHWType
              INTEGER,
          agentDhcpServerManualPoolIpAddress
              IpAddress,
          agentDhcpServerManualPoolIpMask
              IpAddress,
          agentDhcpServerManualPoolIpPrefixLength
              Unsigned32
          }

     agentDhcpServerPoolAllocationName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..30))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies name of the DHCP Address pool having dynamic binding.
                      This value is same as agentDhcpServerPoolName of the agentDhcpServerPoolConfigTable."
         ::= { agentDhcpServerPoolAllocationEntry 1 }

     agentDhcpServerDynamicPoolIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The IP address of the  DHCP Address pool.
                      The IP address must be set before setting the IP Mask or IP Prefix Length.
                      After setting IP address, network -mask, or IP Prefix length must be set in order to change the pool type to dynamic.
                      This value shows 0.0.0.0, if the binding type is 'un-allocated',or,'manual'."
         ::= { agentDhcpServerPoolAllocationEntry 2 }

     agentDhcpServerDynamicPoolIpMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The bit-combination that renders which portion of the address of the DHCP
                      address pool refers to the network or subnet and which part refers to the host.The IP address must have been set before.
                      This value shows 0.0.0.0, if the binding type is 'un-allocated',or,'manual'."
         ::= { agentDhcpServerPoolAllocationEntry 3 }

     agentDhcpServerDynamicPoolIpPrefixLength OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the no. of bits that comprise the address-prefix.
                      The prefix is an alternative way of specifying the network-mask of the client.The IP address must have been set before.
                      This value shows 0, if the binding type is 'un-allocated',or,'mnaual'."
         ::= { agentDhcpServerPoolAllocationEntry 4 }

     agentDhcpServerPoolAllocationType OBJECT-TYPE
         SYNTAX      INTEGER{
                     un-allocated(0),
                     dynamic(1),
                     manual(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the type of the binding that is associated with this pool."
         ::= { agentDhcpServerPoolAllocationEntry 5 }

     agentDhcpServerManualPoolClientIdentifier OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It specifies the unique identifier (in colon separated hexadecimal format)
                      of a DHCP client. It is valid for manual bindings only.
                      It displays 'unconfigured',if the binding type is 'un-allocated',or,'dynamic'.
                      To set this object, input should be 7 octets long with the hardware
                      type in the first octet."
         ::= { agentDhcpServerPoolAllocationEntry 6 }

     agentDhcpServerManualPoolClientName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..30))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It specifies the name of a DHCP client.
                     Client name should't include domain-name.
                     It displays 'unconfigured',if the binding type is 'un-allocated',or,'dynamic'. "
         ::= { agentDhcpServerPoolAllocationEntry 7 }

     agentDhcpServerManualPoolClientHWAddr OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It specifies the hardware-address of a DHCP client. It is valid for manual bindings only.
                      It displays 'unconfigured',if the binding type is 'un-allocated',or,'dynamic'.
                      After hardware-address, hardware-type will be configured."
         ::= { agentDhcpServerPoolAllocationEntry 8 }

     agentDhcpServerManualPoolClientHWType OBJECT-TYPE
         SYNTAX      INTEGER{
                     ethernet(1),
                     ieee802(6)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It specifies the hardware-type of a DHCP client. It is valid for manual bindings only.
                      It displays 'unconfigured',if the binding type is 'un-allocated',or,'dynamic'.
                      Before this, hardware-address must be configured."
         DEFVAL { ethernet }
         ::= { agentDhcpServerPoolAllocationEntry 9 }

     agentDhcpServerManualPoolIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The IP address of the  DHCP Address pool for manual binding.
                     The IP address must be set before setting the IP Mask or IP Prefix Length.After setting IP address, network -mask, or IP Prefix length must be set in order to change the pool type to dynamic.
                     This value shows 0.0.0.0, if the binding type is 'un-allocated',or,'dynamic'."
         ::= { agentDhcpServerPoolAllocationEntry 10 }

     agentDhcpServerManualPoolIpMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The bit-combination that renders which portion of the address of the DHCP
                      address pool for a manual binding refers to the network or subnet and which part refers to the host.
                      The IP address must have been set before.
                      This value shows 0.0.0.0, if the binding type is 'un-allocated',or,'dynamic'."
         ::= { agentDhcpServerPoolAllocationEntry 11 }

     agentDhcpServerManualPoolIpPrefixLength OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the no. of bits that comprise the address-prefix.
                      The prefix is an alternative way of specifying the network-mask of the client.The IP address must have been set before.
                      This value shows 0, if the binding type is 'un-allocated',or,'dynamic'."
         ::= { agentDhcpServerPoolAllocationEntry 12 }


  --***********************************************************************************************
     agentDhcpServerExcludedAddressRangeCreate OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It sets the IP address-ranges(from low to high) that a
                      DHCP server should not assign to DHCP clients. Each time 
                      this MIB object is set successfully, one excluded range 
                      of IP address will be set.
                      It is given in format - start and end IP address 
                      separated by '-' and terminated by ';'.
                      One example would be - 192.168.36.1-200.1.1.1;  .
                      This sets one excluded range of IP address,which
                      starts at 192.168.36.1 and ends at 200.1.1.1. 
                      If only start IP address is given,
                      end IP address is assumed to be equal to the start IP
                      address. Get operation on this MIB object returns a 
                      null-value, as for the purpose of viewing the 
                      exclude-address ranges, the user should perform the 
                      traversal of agentDhcpServerExcludedAddressRangeTable.
                      For this reason the get operation on object 
                agentDhcpServerExcludedAddressRangeCreate becomes insignificant."
         ::= { agentDhcpServerPoolConfigGroup 4 }

     agentDhcpServerExcludedAddressRangeTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerExcludedAddressRangeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server Pool configuration entries."
         ::= { agentDhcpServerPoolConfigGroup 5 }

     agentDhcpServerExcludedAddressRangeEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerExcludedAddressRangeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server excluded address range table."
         INDEX       { agentDhcpServerExcludedRangeIndex }
         ::= { agentDhcpServerExcludedAddressRangeTable 1 }

    -- All objects are of type read-only, except agentDhcpServerExcludedAddressRangeStatus,
    -- which is of type read-write
    AgentDhcpServerExcludedAddressRangeEntry ::= SEQUENCE {
          agentDhcpServerExcludedRangeIndex
              Unsigned32,
          agentDhcpServerExcludedStartIpAddress
              IpAddress,
          agentDhcpServerExcludedEndIpAddress
              IpAddress,
          agentDhcpServerExcludedAddressRangeStatus
              RowStatus
          }

    agentDhcpServerExcludedRangeIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..256)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the index of the excluded IP address-range table."
         ::= { agentDhcpServerExcludedAddressRangeEntry 1 }

    agentDhcpServerExcludedStartIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the starting IP address of the excluded address-range."
         ::= { agentDhcpServerExcludedAddressRangeEntry 2 }

    agentDhcpServerExcludedEndIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the ending IP address of the excluded address-range."
         ::= { agentDhcpServerExcludedAddressRangeEntry 3 }

    agentDhcpServerExcludedAddressRangeStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the row-status of the excluded address-range. Implemented values
                      are - active(1) and destroy(6). For a valid range, the row-satus will return active(1).
                      When it is set to destroy(6), the corresponding address-range is deleted."
         ::= { agentDhcpServerExcludedAddressRangeEntry 4 } 
         
         --***********************************************************************************************
     
     agentDhcpServerPoolOptionCreate OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This sets the option for an existing DHCP Server pool. Here, it is required 
                      to enter the pool-index, for which option is to be set and 
                      the value of the DHCP option code in string-format : pool-index and option code 
                      separated by '-' and terminated by ';', one example would be -> 1-19; 
                      , 1 is the pool-index and 19 is the option code.  "
         ::= { agentDhcpServerPoolConfigGroup 6 }

     agentDhcpServerPoolOptionTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerPoolOptionEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table for configuring DHCP Server options."
         ::= { agentDhcpServerPoolConfigGroup 7 }

     agentDhcpServerPoolOptionEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerPoolOptionEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server option table."
         INDEX       { agentDhcpServerPoolOptionIndex, 
                       agentDhcpServerPoolOptionCode }
         ::= { agentDhcpServerPoolOptionTable 1 }

    -- All objects are of type read-write, except the indexes agentDhcpServerPoolOptionIndex and 
    -- agentDhcpServerPoolOptionCode
    -- For a particular poolOption entry, option data ( ASCII, HEX and IP Address) can be 
    -- entered multiple times provided data-format is same each time.
    AgentDhcpServerPoolOptionEntry ::= SEQUENCE {
          agentDhcpServerPoolOptionIndex
              Unsigned32,
          agentDhcpServerPoolOptionCode
              Unsigned32,
          agentDhcpServerOptionPoolName
              DisplayString,
          agentDhcpServerPoolOptionAsciiData
              DisplayString,
          agentDhcpServerPoolOptionHexData
              DisplayString,
          agentDhcpServerPoolOptionIpAddressData
              DisplayString,
          agentDhcpServerPoolOptionStatus
              RowStatus
          }
    agentDhcpServerPoolOptionIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..512)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Pool Index alongwith option-code, acts as index for the DHCP Server Option table.
                      "
         ::= { agentDhcpServerPoolOptionEntry 1 }

    agentDhcpServerPoolOptionCode OBJECT-TYPE
         SYNTAX      Unsigned32 (1..254)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the DHCP option code. This alongwith pool-index acts as the index of the 
                      DHCP Server Option table."
         ::= { agentDhcpServerPoolOptionEntry 2 }
         
     agentDhcpServerOptionPoolName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Address pool. This value cannot be modified"
         ::= { agentDhcpServerPoolOptionEntry 3 }

    agentDhcpServerPoolOptionAsciiData OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..441))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies an NVT ASCII character string. ASCII character strings 
                      that contain white space must be delimited by quotation marks. 
                      If an ascii optiondata is entered again, it gets concatenated with the 
                      previous ascii data."
         ::= { agentDhcpServerPoolOptionEntry 4 }

    agentDhcpServerPoolOptionHexData OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..1324)) 
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies semi-colon separated hexadecimal data. Two hexadecimal digits 
                     in hexadecimal character string represents one byte . Hexadecimal strings can 
                     be entered in the following formats :
                      1) continuous hexadecimal digits like -- 0123456789abcdef
                      2) hexadecimal digits separated by space ' ' -- 01 23 45 67 de 0f
                      3) Two hexadecimal digits separated by delimeter ':' -- 01:02:a0 de:0f 78:5e 
                      4) Four hexadecimal digits separated by delimeter '.' -- 01ab.c0de.7865 
                      If a Hex optiondata is entered again, it gets concatenated with the 
                      previous Hex data." 
         ::= { agentDhcpServerPoolOptionEntry 5 }
         
     agentDhcpServerPoolOptionIpAddressData OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the IP-address list(each IP-address is
                      separated by comma and the list is terminated by semi-colon) for a DHCP client,
                      an example would be 10.10.1.1,192.168.36.1,157.227.44.1;(no spaces in between).
                      If a IP option is entered again, it gets concatenated with the 
                      previous IP data.
                      Maximum no. of IP addresses that can be entered at one time is 8.
                      "
         ::= { agentDhcpServerPoolOptionEntry 6 }


    agentDhcpServerPoolOptionStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the row-status of the DHCP Server Pool option."
         ::= { agentDhcpServerPoolOptionEntry 7 }

    --**************************************************************************************
    -- agentDhcpServerLeaseGroup -> contains MIB objects displaying and clearing leases of a DHCP server
    --
    --**************************************************************************************

      agentDhcpServerLeaseGroup        OBJECT IDENTIFIER ::= { fastPathDHCPServerPrivate 3 }

      agentDhcpServerLeaseClearAllBindings OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       "Clears All the DHCP server bindings."
      DEFVAL { disable }
    ::= { agentDhcpServerLeaseGroup 1}

       agentDhcpServerLeaseTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerLeaseEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server's Lease entries."
         ::= { agentDhcpServerLeaseGroup 2 }

      agentDhcpServerLeaseEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerLeaseEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server's leases."
         INDEX       { agentDhcpServerLeaseIPAddress }

         ::= { agentDhcpServerLeaseTable 1 }

    -- All objects are of type read-only
     AgentDhcpServerLeaseEntry ::= SEQUENCE {
          agentDhcpServerLeaseIPAddress
              IpAddress,
          agentDhcpServerLeaseIPMask
              IpAddress,
          agentDhcpServerLeaseHWAddress
              MacAddress,
          agentDhcpServerLeaseRemainingTime
              TimeTicks,
          agentDhcpServerLeaseType
              INTEGER,
          agentDhcpServerLeaseStatus
              RowStatus
          }

    agentDhcpServerLeaseIPAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the IP address leased to the client."
         ::= { agentDhcpServerLeaseEntry 1 }

    agentDhcpServerLeaseIPMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the IP mask of the address leased to the client."
         ::= { agentDhcpServerLeaseEntry 2 }
    agentDhcpServerLeaseHWAddress OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the hardware address of the client."
         ::= { agentDhcpServerLeaseEntry 3 }

    agentDhcpServerLeaseRemainingTime OBJECT-TYPE
         SYNTAX      TimeTicks
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the period for which the lease is valid. It is displayed in days, hours, minutes, and seconds."
         ::= { agentDhcpServerLeaseEntry 4 }

    agentDhcpServerLeaseType OBJECT-TYPE
         SYNTAX      INTEGER{
                     automatic(1),
                     manual(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the type of address lease as Automatic or Manual."
         ::= { agentDhcpServerLeaseEntry 5 }

    agentDhcpServerLeaseStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the row-status of the address-lease. Implemented values
                      are - active(1) and destroy(6). For a valid range, the row-satus will return active(1).
                      When it is set to destroy(6), the corresponding address-lease is cleared."
         ::= { agentDhcpServerLeaseEntry 6 } 
         
         
    --**************************************************************************************
    -- agentDhcpServerAddressConflictGroup -> contains MIB objects displaying and clearing 
    --   address conflicts found by a DHCP server, when addresses are offered to the client. 
    --
    --**************************************************************************************

      agentDhcpServerAddressConflictGroup        OBJECT IDENTIFIER ::= { fastPathDHCPServerPrivate 4 }

        agentDhcpServerClearAllAddressConflicts OBJECT-TYPE
        SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
     
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
         "Clears all the address-conflicts found by DHCP server,when set to enable."
        DEFVAL { disable }
      ::= { agentDhcpServerAddressConflictGroup 1}
    
      agentDhcpServerAddressConflictLogging OBJECT-TYPE
           SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                       }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " It is used to enable, or disables the logging of address-conflicts on a DHCP Server."
      DEFVAL { enable }
      ::= { agentDhcpServerAddressConflictGroup 2}



       agentDhcpServerAddressConflictTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerAddressConflictEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the conflicting-address entries."
         ::= { agentDhcpServerAddressConflictGroup 3 }

      agentDhcpServerAddressConflictEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerAddressConflictEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a conflicting-address entry."
         INDEX       { agentDhcpServerAddressConflictIP }

         ::= { agentDhcpServerAddressConflictTable 1 }

     -- All objects are of type read-only, except agentDhcpServerAddressConflictStatus which is 
     -- of type read-write 
     AgentDhcpServerAddressConflictEntry ::= SEQUENCE {
          agentDhcpServerAddressConflictIP
              IpAddress,
          agentDhcpServerAddressConflictDetectionType
              INTEGER,
          agentDhcpServerAddressConflictDetectionTime
              TimeTicks,
          agentDhcpServerAddressConflictStatus
              RowStatus
          }

    agentDhcpServerAddressConflictIP OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the conflicting IP address assigned to the client by DHCP server."
         ::= { agentDhcpServerAddressConflictEntry 1 }   
         
    agentDhcpServerAddressConflictDetectionType OBJECT-TYPE
         SYNTAX      INTEGER{
                     ping(1),
                     gratuitousArp(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the address-conflict detection-method."
         ::= { agentDhcpServerAddressConflictEntry 2 } 
         
    agentDhcpServerAddressConflictDetectionTime OBJECT-TYPE
         SYNTAX      TimeTicks      
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the sysUpTime at which the address-conflict was detected."
         ::= { agentDhcpServerAddressConflictEntry 3 }
         
    agentDhcpServerAddressConflictStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the row-status of the conflicting-address entry. Implemented values
                      are - active(1) and destroy(6). For a valid range, the row-satus will return active(1).
                      When it is set to destroy(6), the corresponding conflicting-address entry is cleared."
         ::= { agentDhcpServerAddressConflictEntry 4 }
END
