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



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

-- DELL NETWORKING OS DHCP Server MIB
-- Copyright 2016-2021 Broadcom.
-- This SNMP Management Information Specification
-- embodies Broadcom's confidential and proprietary
-- intellectual property.  Broadcom retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", Broadcom 
-- 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
    dnOS                            FROM DELL-REF-MIB;

    fastPathDHCPServerPrivate MODULE-IDENTITY
           LAST-UPDATED "202103030000Z" -- 03 March 2021 12:00:00 GMT
           ORGANIZATION "Dell"
           CONTACT-INFO ""
      DESCRIPTION
          "The Broadcom Private MIB for DNOS DHCP Server"

      -- Revision history.
      REVISION
          "202103030000Z" -- 03 March 2021 12:00:00 GMT
      DESCRIPTION
          "Added 'agentDhcpServerPoolClassTable' and 'agentDhcpServerClassConfigGroup' 
           to support DHCP Class Support and Class binding to Pool."
      REVISION
          "201101260000Z" -- 26 January 2011 12:00:00 GMT
      DESCRIPTION
          "Postal address updated."
      REVISION
          "200705230000Z" -- 23 May 2007 12:00:00 GMT
      DESCRIPTION
          "Dell branding related changes."

      ::= { dnOS 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 four tables :  agentDhcpServerPoolConfigTable,
--                                     agentDhcpServerBindingTable,
--                                     agentDhcpServerPoolClassTable
--
--  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 
--  
--  agentDhcpServerPoolClassTable -> This table lists the Classes for Pool for a DHCP Server
--**********************************************************************************


    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
              DisplayString,
          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      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "This specifies the SNTP server  list in the boot-process of a DHCP client. 
                       (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;(no spaces in between).
                       User should enter  a 'null' or 'NULL' string 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,
          agentDhcpServerPoolVrfName
              DisplayString
          }

     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 }
 
     agentDhcpServerPoolVrfName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0..15))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "A textual string containing the name of a VRF Instance. This specifies the VRF Instance for whose interfaces 
                       only this pool is to be used for address allocation. User should enter a 'null' or 'NULL' string to remove 
                       specified VRF-name.for whose DHCP pools this excluded addres-range is applicable."
         ::= { agentDhcpServerPoolAllocationEntry 13 }
     

  --***********************************************************************************************
     agentDhcpServerExcludedAddressRangeCreate OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "It sets the IP address-ranges(from low to high) for a specific 
                      VRF instance 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 to a given VRF instance. 
                      It is given in the format - start and end IP address separated by 
                      '-' and followed by '/' and then followed by VRF-Name terminated by ';'. 
                      One example would be - 192.168.36.1-200.1.1.1/vrfRed;  . 
                      This sets one excluded range of IP addresses, which starts at 
                      192.168.36.1 and ends at 200.1.1.1 and is applicable to the VRF instance vrfRed. 
                      If only start IP address is given (like 20.20.20.1/vrfRed; ), then the 
                      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,
          agentDhcpServerExcludedVrfName
              DisplayString
          }

    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 } 

    agentDhcpServerExcludedVrfName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0..64))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                      "A textual string containing the name of a VRF Instance. This specifies the VRF Instance 
                       for whose DHCP pools this excluded addres-range is applicable."
         ::= { agentDhcpServerExcludedAddressRangeEntry 5 }
        
         --***********************************************************************************************
     
     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 }

     --***********************************************************************************************
     agentDhcpServerPoolClassTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerPoolClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table for configuring DHCP Server Class Address Range."
         ::= { agentDhcpServerPoolConfigGroup 8 }

     agentDhcpServerPoolClassEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerPoolClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server Class Address Range table."
         INDEX       { agentDhcpServerPoolNameIndex, 
                       agentDhcpServerPoolClassNameIndex }
         ::= { agentDhcpServerPoolClassTable 1 }

    AgentDhcpServerPoolClassEntry ::= SEQUENCE {
          agentDhcpServerPoolNameIndex 
              Unsigned32,
          agentDhcpServerPoolClassNameIndex 
              Unsigned32,
          agentDhcpServerPoolNameForClass
              DisplayString,
          agentDhcpServerPoolClassName
              DisplayString,
          agentDhcpServerPoolClassStartIpAddress
              IpAddress,
          agentDhcpServerPoolClassEndIpAddress
              IpAddress,
          agentDhcpServerPoolClassAddressRangeStatus
              RowStatus
          }

    agentDhcpServerPoolNameIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..1024)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Pool Index along with class, acts as index for the DHCP Server 
                      Class Address RAnge table."
         ::= { agentDhcpServerPoolClassEntry 1 }

    agentDhcpServerPoolClassNameIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (0..1024)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the DHCP option code. This alongwith pool-index acts as the index of the 
                      DHCP Server Option table."
         ::= { agentDhcpServerPoolClassEntry 2 }
         
    agentDhcpServerPoolNameForClass OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Address pool."
         ::= { agentDhcpServerPoolClassEntry 3 }

    agentDhcpServerPoolClassName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Class that can be binded to pool."
         ::= { agentDhcpServerPoolClassEntry 4 }

    agentDhcpServerPoolClassStartIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the starting IP address of the DHCP Class binded to a pool."
         ::= { agentDhcpServerPoolClassEntry 5 }

    agentDhcpServerPoolClassEndIpAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the ending IP address of the DHCP Class binded to a pool."
         ::= { agentDhcpServerPoolClassEntry 6 }
         
    agentDhcpServerPoolClassAddressRangeStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the row-status of the DHCP Server Pool-Class binding."
         ::= { agentDhcpServerPoolClassEntry 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       { agentDhcpServerLeaseLeaseIndex }

         ::= { agentDhcpServerLeaseTable 1 }

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

    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 }

    agentDhcpServerLeasePoolName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Address pool associated with the lease entry."
         ::= { agentDhcpServerLeaseEntry 7 }
  
    agentDhcpServerLeaseVrfName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0..64))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                      "A textual string containing the name of a VRF Instance. This specifies 
                       the VRF Instance with which this lease entry is assocaited."
         ::= { agentDhcpServerLeaseEntry 8 }

    agentDhcpServerLeaseLeaseIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..4096)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Lease entry's associated Lease-Index within a specific DHCP address Pool, which will be used as one of the indices for the ServerLease Table."
         ::= { agentDhcpServerLeaseEntry 9 }


    agentDhcpServerLeaseClearVrfAndIPaddrSpecificBindings OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "Clearing of a specific binding identified by an IP-address of a 
                      specific VRF instance is done by applying write operation on this
                      MIB object and providing the VRF-name and IP-address.
                      It is given in format - VRF-Name and IP address 
                      separated by '-' and terminated by ';'.
                      One example would be - VrfRed-102.5.5.5;  .
                      This clears the binding matching the IP-address 102.5.5.5 in VRF instance VrfRed.
                      If only VRF-name is given then all bindings in that VRF are cleared.
                      Get operation on this MIB object returns a
                      null-value, as for the purpose of viewing the
                      VRF bindings, the user should perform the
                      traversal of agentDhcpServerLeaseTable.
                      For this reason the get operation on object
                      agentDhcpServerLeaseClearVrfAndIPaddrSpecificBindings becomes insignificant."
    ::= { agentDhcpServerLeaseGroup 3}


    agentDhcpServerLeaseClearPoolAndIPaddrSpecificBindings OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                      "Clearing of a specific binding identified by an IP-address of a 
                      specific DHCP Pool is done by applying write operation on this
                      MIB object and providing the Pool-name and IP-address.
                      It is given in format - Pool-Name and IP address 
                      separated by '-' and terminated by ';'.
                      One example would be - PoolRed-102.5.5.5;  .
                      This clears the binding matching the IP-address 102.5.5.5 in Pool PoolRed.
                      If only Pool-name is given then all bindings from that pool are cleared.
                      Get operation on this MIB object returns a
                      null-value, as for the purpose of viewing the
                      pool specific bindings, the user should perform the
                      traversal of agentDhcpServerLeaseTable.
                      For this reason the get operation on object
                      agentDhcpServerLeaseClearPoolAndIPaddrSpecificBindings becomes insignificant."
    ::= { agentDhcpServerLeaseGroup 4}


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

--**********************************************************************************
-- agentDhcpServerClassConfigGroup
--  This group contains two tables :  agentDhcpServerClassTable,
--                                      agentDhcpServerClassConfigTable
--
--  agentDhcpServerClassTable -> This table is used to configure a
--                               new DHCP Class on a DHCP server. This table
--                               is also used to create and delete a DHCP Class.
--
--  agentDhcpServerClassConfigTable -> This table is used to configure/delete a Option 82 
--                                     parameters (Remote Id and Circuit Id) for a DHCP Class 
--                                     on a DHCP server. 
--
--**********************************************************************************


    agentDhcpServerClassConfigGroup        OBJECT IDENTIFIER ::= { fastPathDHCPServerPrivate 5 }

    agentDhcpServerClassTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server Class entries."
         ::= { agentDhcpServerClassConfigGroup 1 }

    agentDhcpServerClassEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp Class."
         INDEX       { agentDhcpServerClassIndex } 
         ::= { agentDhcpServerClassTable 1 }

    AgentDhcpServerClassEntry ::= SEQUENCE {
          agentDhcpServerClassIndex
              Unsigned32,
          agentDhcpServerClassName
              DisplayString,
          agentDhcpServerClassRowStatus
              RowStatus
          }

    agentDhcpServerClassIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..1024)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Class Index, which 'll be used as index for the Class Table."
         ::= { agentDhcpServerClassEntry 1 }

     agentDhcpServerClassName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Class."
         ::= { agentDhcpServerClassEntry 2 }

     agentDhcpServerClassRowStatus 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. This object 
          is used to create and delete the DHCP Class."
         ::= { agentDhcpServerClassEntry 3 }

    agentDhcpServerClassConfigTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDhcpServerClassConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP Server Class configuration entries."
         ::= { agentDhcpServerClassConfigGroup 2 }

    agentDhcpServerClassConfigEntry OBJECT-TYPE
         SYNTAX      AgentDhcpServerClassConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Dhcp server class."
         INDEX       { agentDhcpServerClassConfigIndex, 
                       agentDhcpServerClassEntryIndex}
         ::= { agentDhcpServerClassConfigTable 1 }

    AgentDhcpServerClassConfigEntry ::= SEQUENCE {
          agentDhcpServerClassConfigIndex
              Unsigned32,
          agentDhcpServerClassEntryIndex
              Unsigned32,
          agentDhcpServerClassConfigName
              DisplayString,
          agentDhcpServerClassConfigRemoteId
              DisplayString,
          agentDhcpServerClassConfigCircuitId
              DisplayString,
          agentDhcpServerClassConfigRowStatus
              RowStatus
          }

    agentDhcpServerClassConfigIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..1024)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Class Index, which 'll be used as index for the ClassConfig Table."
         ::= { agentDhcpServerClassConfigEntry 1 }

    agentDhcpServerClassEntryIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..32)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Class Index, which 'll be used as index for the ClassConfig Table."
         ::= { agentDhcpServerClassConfigEntry 2 }

     agentDhcpServerClassConfigName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The name of the DHCP Class. When setting this value, the
                     value of 'agentDhcpServerClassConfigRemoteId' and 'agentDhcpServerClassConfigCircuitId' 
                     must be set at the same time."
         ::= { agentDhcpServerClassConfigEntry 3 }

     agentDhcpServerClassConfigRemoteId OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the DHCP option 82 Remote Id parameter. 
                      When setting this value, the value of 'agentDhcpServerClassConfigName' 
                      and 'agentDhcpServerClassConfigCircuitId' must be set at the same time.
                      When empty string is set for Remote Id, all Option 82 entries 
                      configured on the class will be deleted."
         ::= { agentDhcpServerClassConfigEntry 4 }

     agentDhcpServerClassConfigCircuitId OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the DHCP option 82 Citcuit Id parameter.
                      When setting this value, the value of 'agentDhcpServerClassConfigName' 
                      and 'agentDhcpServerClassConfigRemoteId' must be set at the same time.
                      When empty string is set for Circuit Id, all Option 82 entries 
                      configured with the specific Remote Id on the class will be deleted."
         ::= { agentDhcpServerClassConfigEntry 5 }

     agentDhcpServerClassConfigRowStatus 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. This object 
          is used to delete the DHCP Class Entry with a specific 
          Remote Id/Circuit Id. Enter 'agentDhcpServerClassConfigName', 
          'agentDhcpServerClassConfigRemoteId' and 'agentDhcpServerClassConfigCircuitId' 
          along with this object to delete it. "
         ::= { agentDhcpServerClassConfigEntry 6 }
END
