-- **************************************************************************
-- *                                                                        *
-- *                                                                        *
-- *                    Hirschmann Automation and Control GmbH              *
-- *                                                                        *
-- *                         PLATFORM SNMP PRIVATE MIB                      * 
-- *                                                                        *
-- *                                 DHCP Server                            *
-- *                                                                        *
-- *                                                                        *
-- %*************************************************************************
-- *                                                                        *
-- *    Dies ist eine SNMP MIB fuer Hirschmann Platform Geraete.            *
-- *                                                                        *
-- *    Sollten Sie weitere Fragen haben, wenden Sie sich bitte an ihren    *
-- *    Hirschmann-Vertragspartner.                                         *
-- *                                                                        *
-- *    Aktuelle Hirschmann-Infos zu unseren Produkten erhalten Sie ueber   *
-- *    unseren WWW-Server unter http://www.hirschmann.com                  *
-- *                                                                        *
-- *    This is a SNMP MIB for the Hirschmann Platform devices.             *
-- *                                                                        *
-- *    If you have any further questions please contact your               *
-- *    Hirschmann contractual partner.                                     *
-- *                                                                        *
-- *    You can access current information about Hirschmann products        *
-- *    via our WWW server on http://www.hirschmann.com                     *
-- *                                                                        *
-- **************************************************************************

HMDHCPS-SNMP-MIB   DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32, Unsigned32, IpAddress
                                                FROM SNMPv2-SMI                               
    RowStatus, DisplayString, MacAddress        FROM SNMPv2-TC
    hmConfiguration                             FROM HMPRIV-MGMT-SNMP-MIB; 


hmDhcps MODULE-IDENTITY
        LAST-UPDATED "201304181200Z" -- 18 apr 2013 12:00:00 GMT
    ORGANIZATION "Hirschmann Automation and Control GmbH"
    CONTACT-INFO 
          "Customer Support
           Postal: 
           Hirschmann Automation and Control GmbH
           Stuttgarter Str. 45-51
           72654 Neckartenzlingen
           Germany
           Tel: +49 7127 14 1981
           Web: http://www.hicomcenter.com/
           E-Mail: hicomcenter@hirschmann.com"
    DESCRIPTION
          "The Hirschmann Private DHCP MIB definitions for Platform devices."

        -- Revision history.
		REVISION
          "201304181200Z" -- 18 apr 2013 12:00:00 GMT
    	DESCRIPTION
          "Added ICMP echo probe and pool vendor option."

		REVISION
          "201112201200Z" -- 20 dec 2011 12:00:00 GMT
    	DESCRIPTION
          "Added pools per VLAN."
        
		REVISION
          "200710161200Z" -- 16 Oct 2007 12:00:00 GMT
    	DESCRIPTION
          "First release in SMIv2"
    ::= { hmConfiguration 16 }



-- 
-- DHCP Server Group
--

hmDHCPServerGroup  OBJECT IDENTIFIER ::= { hmDhcps 1 }
 
hmDHCPServerConfigGroup     OBJECT IDENTIFIER ::= { hmDHCPServerGroup 1 }
hmDHCPServerLeaseGroup      OBJECT IDENTIFIER ::= { hmDHCPServerGroup 2 }
hmDHCPServerInterfaceGroup  OBJECT IDENTIFIER ::= { hmDHCPServerGroup 3 }
hmDHCPServerCounterGroup    OBJECT IDENTIFIER ::= { hmDHCPServerGroup 4 }
  
--   
-- DHCP Server Config Group
--
hmDHCPServerMode  OBJECT-TYPE 
   SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
		       }
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "Enable or disable DHCP server global." 
   DEFVAL  { disable } 
   ::= { hmDHCPServerConfigGroup 1 }

hmDHCPServerMaxPoolEntries  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "Maximum possible entries in hmDHCPServerPoolTable."
   ::= { hmDHCPServerConfigGroup 2 }

hmDHCPServerMaxLeaseEntries  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only 
   STATUS      current
   DESCRIPTION 
      "Maximum possible entries in hmDHCPServerLeaseTable."
   ::= { hmDHCPServerConfigGroup 3 }

hmDHCPServerAddrProbe  OBJECT-TYPE 
   SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
		       }
   MAX-ACCESS  read-write 
   STATUS      current
   DESCRIPTION 
      "If set to enable the DHCP server probes the allocated address
      with an ICMP Echo Request before offering to the client."
   DEFVAL  { enable }
   ::= { hmDHCPServerConfigGroup 4 }

-- DHCP Pool
hmDHCPServerPoolTable  OBJECT-TYPE 
   SYNTAX      SEQUENCE OF HmDHCPServerPoolEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A table containing the DHCP server pools."
   ::= { hmDHCPServerConfigGroup 5 } 
 
hmDHCPServerPoolEntry  OBJECT-TYPE 
   SYNTAX      HmDHCPServerPoolEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A logical row in the hmDHCPServerPoolTable." 
   INDEX { 
      hmDHCPServerPoolIndex 
   } 
   ::= { hmDHCPServerPoolTable 1}
 
HmDHCPServerPoolEntry ::= SEQUENCE { 
   hmDHCPServerPoolIndex              Unsigned32,
   hmDHCPServerPoolStartIpAddress     IpAddress,
   hmDHCPServerPoolEndIpAddress       IpAddress,
   hmDHCPServerPoolLeaseTime          Unsigned32,
   hmDHCPServerPoolFlags              BITS,
   hmDHCPServerPoolIfIndex            Integer32,
   hmDHCPServerPoolMacAddress         MacAddress,
   hmDHCPServerPoolGateway            IpAddress,
   hmDHCPServerPoolClientId           OCTET STRING,
   hmDHCPServerPoolRemoteId           OCTET STRING,
   hmDHCPServerPoolCircuitId          OCTET STRING,
   hmDHCPServerPoolHirschmannClient   INTEGER,
   hmDHCPServerPoolVlanId			  Integer32,
   hmDHCPServerPoolOptionConfFileName DisplayString,
   hmDHCPServerPoolOptionGateway      IpAddress,
   hmDHCPServerPoolOptionNetmask      IpAddress,
   hmDHCPServerPoolOptionWINS         IpAddress,
   hmDHCPServerPoolOptionDNS          IpAddress,
   hmDHCPServerPoolOptionHostname     DisplayString,
   hmDHCPServerPoolOptionVendor       OCTET STRING,
   hmDHCPServerPoolErrorStatus        Unsigned32,
   hmDHCPServerPoolRowStatus          RowStatus
}

hmDHCPServerPoolIndex  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The index of hmDHCPServerPoolTable." 
   ::= { hmDHCPServerPoolEntry 1 }

hmDHCPServerPoolStartIpAddress  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-write
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the first address in the range.  The 
      value of hmDHCPServerPoolStartIpAddress MUST be less than or 
      equal to the value of hmDHCPServerPoolEndIpAddress." 
   ::= { hmDHCPServerPoolEntry 2 }

hmDHCPServerPoolEndIpAddress  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the last address in the range.  The value 
      of hmDHCPServerPoolEndIpAddress MUST be greater than or equal 
      to the value of hmDHCPServerPoolStartIpAddress."
   ::= { hmDHCPServerPoolEntry 3 }

hmDHCPServerPoolLeaseTime  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The pools lease time in number of seconds. 
      A value of 4294967295 SHOULD be used for leases that 
      have a lease time which is 'infinite' and for BOOTP leases." 
   DEFVAL  { 86400 }      
   ::= { hmDHCPServerPoolEntry 4 }
      
hmDHCPServerPoolFlags  OBJECT-TYPE 
   SYNTAX      BITS {
                  interface(0),
                  mac(1),
                  gateway(2),
                  clientid(3),
                  remoteid(4),
                  circuitid(5),
                  dynamic(6),
                  vlanid(7)
               }
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "This object shows the parameters
      that are used to lease the IP Address."
   ::= { hmDHCPServerPoolEntry 5 }

hmDHCPServerPoolIfIndex  OBJECT-TYPE 
   SYNTAX      Integer32
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The index of the interface." 
   ::= { hmDHCPServerPoolEntry 6 }
    
hmDHCPServerPoolMacAddress  OBJECT-TYPE 
   SYNTAX      MacAddress
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The MAC Address of the  entry
      that is used to lease the IP Address."    
   ::= { hmDHCPServerPoolEntry 7 }

hmDHCPServerPoolGateway  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the Gatewayinterface
      that is used to lease the IP Address." 
   ::= { hmDHCPServerPoolEntry 8 }

hmDHCPServerPoolClientId  OBJECT-TYPE 
   SYNTAX      OCTET STRING
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The Client Identifier of the entry
      that is used to lease the IP Address."
   ::= { hmDHCPServerPoolEntry 9 }
    
hmDHCPServerPoolRemoteId  OBJECT-TYPE 
   SYNTAX      OCTET STRING
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The Remote Identifier of the  entry
      that is used to lease the IP Address.
      The Remote Identifier must be send in
      Option 82 as defined in RFC 3046."
   ::= { hmDHCPServerPoolEntry 10 }

hmDHCPServerPoolCircuitId  OBJECT-TYPE 
   SYNTAX      OCTET STRING
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The Cicuit Identifier of the  entry
      that is used to lease the IP Address.
      The Circuit Identifier must be send in
      Option 82 as defined in RFC 3046."
   ::= { hmDHCPServerPoolEntry 11 }

hmDHCPServerPoolHirschmannClient  OBJECT-TYPE 
   SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
		       }
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "Enable or disable Hirschmann Multicast." 
   DEFVAL  { disable } 
   ::= { hmDHCPServerPoolEntry 12 }

hmDHCPServerPoolVlanId  OBJECT-TYPE 
   SYNTAX      Integer32
   MAX-ACCESS  read-create
   STATUS      current 
   DESCRIPTION 
      "The Vlan ID of the entry that is used
      to lease the IP Address. A value of -1 
      corresponds to management vlan (the default),
      any other value (1-4042) represents a specific VLAN"
   ::= { hmDHCPServerPoolEntry 13 }
   
-- Pool Options
hmDHCPServerPoolOptionConfFileName  OBJECT-TYPE 
   SYNTAX      DisplayString (SIZE (0..70)) 
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "Full specified name of the configuration file
      e.g. tftp://192.9.200.1/cfg/config1.sav.
      An empty string zeros the SNAME and the FILE field 
      in the DHCP header."     
   ::= { hmDHCPServerPoolEntry 30 } 

hmDHCPServerPoolOptionGateway  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the Gateway.
      A value of 0 disables the attachment of the
      option field in the DHCP message."
   ::= { hmDHCPServerPoolEntry 31 }

hmDHCPServerPoolOptionNetmask  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "The subnet mask.
      A value of 0 disables the attachment of the
      option field in the DHCP message."
   ::= { hmDHCPServerPoolEntry 32 }
   
hmDHCPServerPoolOptionWINS  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the WINS Server.
      A value of 0 disables the attachment of the
      option field in the DHCP message."
   ::= { hmDHCPServerPoolEntry 33 }

hmDHCPServerPoolOptionDNS  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the DNS Server.
      A value of 0 disables the attachment of the
      option field in the DHCP message."
   ::= { hmDHCPServerPoolEntry 34 }

hmDHCPServerPoolOptionHostname  OBJECT-TYPE 
   SYNTAX      DisplayString
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "The name of the client (Option 12).
      An empty string disables the attachment of the
      option field in the DHCP message."
   ::= { hmDHCPServerPoolEntry 35 }

hmDHCPServerPoolOptionVendor OBJECT-TYPE 
   SYNTAX      OCTET STRING (SIZE(0..255))
   MAX-ACCESS  read-create 
   STATUS      current 
   DESCRIPTION 
      "Vendor Specific Information (Option 43) as hex string."
   ::= { hmDHCPServerPoolEntry 36 }

hmDHCPServerPoolErrorStatus  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The error Code by create a new Pool." 
   ::= { hmDHCPServerPoolEntry 99 }

hmDHCPServerPoolRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the status of this entry."
    ::= { hmDHCPServerPoolEntry 100 }

    
--
-- DHCP Server Lease Group
--
hmDHCPServerLeaseTable  OBJECT-TYPE 
   SYNTAX      SEQUENCE OF HmDHCPServerLeaseEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A table containing the DHCP server leases."
   ::= { hmDHCPServerLeaseGroup 1 } 
 
hmDHCPServerLeaseEntry  OBJECT-TYPE 
   SYNTAX      HmDHCPServerLeaseEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A logical row in the hmDHCPServerLeaseTable." 
   INDEX { 
      hmDHCPServerLeasePoolIndex,
      hmDHCPServerLeaseIpAddress
   } 
   ::= { hmDHCPServerLeaseTable 1}
 
HmDHCPServerLeaseEntry ::= SEQUENCE { 
   hmDHCPServerLeasePoolIndex              Unsigned32,
   hmDHCPServerLeaseIpAddress              IpAddress,
   hmDHCPServerLeaseState                  INTEGER,
   hmDHCPServerLeaseTimeRemaining          Unsigned32,
   hmDHCPServerLeaseIfIndex                Integer32,
   hmDHCPServerLeaseClientMacAddress       MacAddress,
   hmDHCPServerLeaseGateway                IpAddress,
   hmDHCPServerLeaseClientId               OCTET STRING,
   hmDHCPServerLeaseRemoteId               OCTET STRING,
   hmDHCPServerLeaseCircuitId              OCTET STRING,
   hmDHCPServerLeaseStartTime              Unsigned32,  
   hmDHCPServerLeaseAction                 INTEGER,
   hmDHCPServerLeaseVlanId			  	   Integer32
}

hmDHCPServerLeasePoolIndex  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The index of the hmDHCPServerPoolTable above." 
   ::= { hmDHCPServerLeaseEntry 1 }
   
hmDHCPServerLeaseIpAddress  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "This is an IP address from the pool with
      index hmDHCPServerLeasePoolIndex."
   ::= { hmDHCPServerLeaseEntry 2 }   

hmDHCPServerLeaseState  OBJECT-TYPE 
   SYNTAX      INTEGER  {
               bootp(1),
               offering(2),
               requesting(3),
               bound(4),
               renewing(5),
               rebinding(6),
               declined(7),
               released(8)  
               }
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The state of the lease."
   ::= { hmDHCPServerLeaseEntry 3 }

hmDHCPServerLeaseTimeRemaining  OBJECT-TYPE 
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The remaining time of the lease configured in
      hmDHCPServerPoolLeaseTime."
   ::= { hmDHCPServerLeaseEntry 4 }  

hmDHCPServerLeaseIfIndex  OBJECT-TYPE 
   SYNTAX      Integer32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The interface index where the lease
      is currently active."
   ::= { hmDHCPServerLeaseEntry 5 }  

hmDHCPServerLeaseClientMacAddress  OBJECT-TYPE 
   SYNTAX      MacAddress
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The MAC Address of the  entry
      that has leased the IP Address."
   ::= { hmDHCPServerLeaseEntry 6 } 

hmDHCPServerLeaseGateway  OBJECT-TYPE 
   SYNTAX      IpAddress
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The IPv4 address of the Gatewayinterface
      that was used to lease the IP Address."
   ::= { hmDHCPServerLeaseEntry 7 }

hmDHCPServerLeaseClientId  OBJECT-TYPE 
   SYNTAX      OCTET STRING (SIZE (0..255))
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The Client Identifier of the entry
      that was used to lease the IP Address."
   ::= { hmDHCPServerLeaseEntry 8 }
    
hmDHCPServerLeaseRemoteId  OBJECT-TYPE 
   SYNTAX      OCTET STRING (SIZE (0..255))
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The Remote Identifier of the entry
      that was used to lease the IP Address."
   ::= { hmDHCPServerLeaseEntry 9 }

hmDHCPServerLeaseCircuitId  OBJECT-TYPE 
   SYNTAX      OCTET STRING (SIZE (0..255))
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The Cicuit Identifier of the entry
      that was used to lease the IP Address."
   ::= { hmDHCPServerLeaseEntry 10 }

hmDHCPServerLeaseStartTime  OBJECT-TYPE 
   SYNTAX      Unsigned32  
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "Lease start Time."
   ::= { hmDHCPServerLeaseEntry 11 }

hmDHCPServerLeaseAction  OBJECT-TYPE 
   SYNTAX      INTEGER  {
   			   other(1),
               release(2)
               }
   MAX-ACCESS  read-write
   STATUS      current 
   DESCRIPTION 
      "Manually release this ip address for new assignment."
   ::= { hmDHCPServerLeaseEntry 12 }

hmDHCPServerLeaseVlanId  OBJECT-TYPE 
   SYNTAX      Integer32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The Vlan ID of the entry that is used
      to lease the IP Address. A value of -1 
      corresponds to management vlan (the default),
      any other value (1-4042) represents a specific VLAN"
   ::= { hmDHCPServerLeaseEntry 13 }

--
-- DHCP Server Interface Group
--
hmDHCPServerIfConfigTable  OBJECT-TYPE 
   SYNTAX      SEQUENCE OF HmDHCPServerIfConfigEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A table containing current configuration information
      for each interface." 
   ::= { hmDHCPServerInterfaceGroup 1 } 
 
hmDHCPServerIfConfigEntry  OBJECT-TYPE 
   SYNTAX      HmDHCPServerIfConfigEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A logical row in the hmDHCPServerIfConfigTable." 
   INDEX { 
      hmDHCPServerIfConfigIndex 
   } 
   ::= { hmDHCPServerIfConfigTable 1}
 
HmDHCPServerIfConfigEntry ::= SEQUENCE { 
   hmDHCPServerIfConfigIndex                   Integer32,
   hmDHCPServerIfConfigMode                    INTEGER
}

hmDHCPServerIfConfigIndex  OBJECT-TYPE 
   SYNTAX      Integer32
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The index of the interface." 
   ::= { hmDHCPServerIfConfigEntry 1 }

hmDHCPServerIfConfigMode  OBJECT-TYPE 
   SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
		       }
   MAX-ACCESS  read-write 
   STATUS      current 
   DESCRIPTION 
      "Enable or disable DHCP server on this interface." 
   DEFVAL  { enable } 
   ::= { hmDHCPServerIfConfigEntry 2 }



--
-- DHCP Server Counter Group
--
hmDHCPServerCounterIfTable  OBJECT-TYPE 
   SYNTAX      SEQUENCE OF HmDHCPServerCounterIfEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A table containing current configuration information
      for each interface." 
   ::= { hmDHCPServerCounterGroup 2 } 
 
hmDHCPServerCounterIfEntry  OBJECT-TYPE 
   SYNTAX      HmDHCPServerCounterIfEntry 
   MAX-ACCESS  not-accessible 
   STATUS      current 
   DESCRIPTION 
      "A logical row in the hmDHCPServerCounterIfTable." 
   INDEX { 
      hmDHCPServerCounterIfIndex 
   } 
   ::= { hmDHCPServerCounterIfTable 1}
 
HmDHCPServerCounterIfEntry ::= SEQUENCE { 
   hmDHCPServerCounterIfIndex                       Integer32,
   hmDHCPServerCounterBootpRequests                 Counter32,
   hmDHCPServerCounterBootpInvalids                 Counter32,
   hmDHCPServerCounterBootpReplies                  Counter32,
   hmDHCPServerCounterBootpDroppedUnknownClients    Counter32,
   hmDHCPServerCounterBootpDroppedNotServingSubnet  Counter32,
   hmDHCPServerCounterDhcpv4Discovers               Counter32,
   hmDHCPServerCounterDhcpv4Offers                  Counter32,
   hmDHCPServerCounterDhcpv4Requests                Counter32,
   hmDHCPServerCounterDhcpv4Declines                Counter32,
   hmDHCPServerCounterDhcpv4Acks                    Counter32,
   hmDHCPServerCounterDhcpv4Naks                    Counter32,
   hmDHCPServerCounterDhcpv4Releases                Counter32,
   hmDHCPServerCounterDhcpv4Informs                 Counter32,
   hmDHCPServerCounterDhcpv4ForcedRenews            Counter32,
   hmDHCPServerCounterDhcpv4Invalids                Counter32,
   hmDHCPServerCounterDhcpv4DroppedUnknownClient    Counter32,
   hmDHCPServerCounterDhcpv4DroppedNotServingSubnet Counter32,
   hmDHCPServerCounterMiscOtherDhcpServer           Counter32
   }

hmDHCPServerCounterIfIndex  OBJECT-TYPE 
   SYNTAX      Integer32 (1..128)
   MAX-ACCESS  read-only
   STATUS      current 
   DESCRIPTION 
      "The index of the interface." 
   ::= { hmDHCPServerCounterIfEntry 1 }
   
-- BOOTP Counter
hmDHCPServerCounterBootpRequests  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of packets received that contain a Message Type of 
      1 (BOOTREQUEST) in the first octet and do not contain option 
      number 53 (DHCP Message Type) in the options." 
   ::= { hmDHCPServerCounterIfEntry 2 } 
 
hmDHCPServerCounterBootpInvalids  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of packets received that do not contain a Message 
      Type of 1 (BOOTREQUEST) in the first octet or are not valid 
      BOOTP packets (e.g., too short, invalid field in packet 
      header)." 
   ::= { hmDHCPServerCounterIfEntry 3 } 
 
hmDHCPServerCounterBootpReplies  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of packets sent that contain a Message Type of 2 
      (BOOTREPLY) in the first octet and do not contain option 
      number 53 (DHCP Message Type) in the options." 
   ::= { hmDHCPServerCounterIfEntry 4 } 
 
hmDHCPServerCounterBootpDroppedUnknownClients  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of BOOTP packets dropped due to the server not 
      recognizing or not providing service to the hardware address 
      received in the incoming packet." 
   ::= { hmDHCPServerCounterIfEntry 5 } 
 
hmDHCPServerCounterBootpDroppedNotServingSubnet  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of BOOTP packets dropped due to the server not 
      being configured or not otherwise able to serve addresses on 
      the subnet from which this message was received." 
   ::= { hmDHCPServerCounterIfEntry 6 }

-- DHCPv4 Counter
hmDHCPServerCounterDhcpv4Discovers  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPDISCOVER (option 53 with value 1) packets 
      received." 
   ::= { hmDHCPServerCounterIfEntry 20 } 
 
hmDHCPServerCounterDhcpv4Offers  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPOFFER (option 53 with value 2) packets 
      sent." 
   ::= { hmDHCPServerCounterIfEntry 21 } 
 
hmDHCPServerCounterDhcpv4Requests  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPREQUEST (option 53 with value 3) packets 
      received." 
   ::= { hmDHCPServerCounterIfEntry 22 } 

hmDHCPServerCounterDhcpv4Declines  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPDECLINE (option 53 with value 4) packets 
      received." 
   ::= { hmDHCPServerCounterIfEntry 23 } 
 
hmDHCPServerCounterDhcpv4Acks  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPACK (option 53 with value 5) packets sent." 
   ::= { hmDHCPServerCounterIfEntry 24 } 
 
hmDHCPServerCounterDhcpv4Naks  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPNACK (option 53 with value 6) packets 
      sent." 
   ::= { hmDHCPServerCounterIfEntry 25 } 
 
hmDHCPServerCounterDhcpv4Releases  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPRELEASE (option 53 with value 7) packets 
      received." 
   ::= { hmDHCPServerCounterIfEntry 26 } 
 
hmDHCPServerCounterDhcpv4Informs  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPINFORM (option 53 with value 8) packets 
      received." 
   ::= { hmDHCPServerCounterIfEntry 27 } 
 
hmDHCPServerCounterDhcpv4ForcedRenews  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCPFORCERENEW (option 53 with value 9) packets 
      sent." 
   ::= { hmDHCPServerCounterIfEntry 28 } 
 
hmDHCPServerCounterDhcpv4Invalids  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCP packets received whose DHCP message type 
      (i.e., option number 53) is not understood or handled by the 
      server." 
   ::= { hmDHCPServerCounterIfEntry 29 } 
 
hmDHCPServerCounterDhcpv4DroppedUnknownClient  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCP packets dropped due to the server not 
      recognizing or not providing service to the client-id and/or 
      hardware address received in the incoming packet." 
   ::= { hmDHCPServerCounterIfEntry 30 } 
 
hmDHCPServerCounterDhcpv4DroppedNotServingSubnet  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of DHCP packets dropped due to the server not 
      being configured or not otherwise able to serve addresses on 
      the subnet from which this message was received." 
   ::= { hmDHCPServerCounterIfEntry 31 }

-- Misc Counter
hmDHCPServerCounterMiscOtherDhcpServer  OBJECT-TYPE 
   SYNTAX      Counter32 
   MAX-ACCESS  read-only 
   STATUS      current 
   DESCRIPTION 
      "The number of BOOTP and DHCP packets from another
      DHCP server seen on this interface." 
   ::= { hmDHCPServerCounterIfEntry 40 }

END

