ADTRAN-GEN-DHCP-CLIENT-MIB

DEFINITIONS  ::= BEGIN

-- ******************************************************************
-- TITLE:     ADTRAN GEN DHCP CLIENT MIB
-- DATE:      August 13, 2009
--
-- HISTORY:
-- yy/mm/dd
-- 09/08/13 cb STATUS: PRELIMINARY.
-- ******************************************************************

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Integer32,
    Counter32,
    Unsigned32               FROM SNMPv2-SMI    -- [RFC2578]
    TEXTUAL-CONVENTION,
    DisplayString            FROM SNMPv2-TC     -- [RFC2579]
    ifIndex                  FROM IF-MIB
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP       FROM SNMPv2-CONF   -- [RFC2580]
    InetAddressType,
    InetAddress              FROM INET-ADDRESS-MIB  -- [RFC2851]
    adGenDhcpClient,
    adGenDhcpClientId        FROM ADTRAN-SHARED-DHCP-MIB;

adGenDhcpClientMib   MODULE-IDENTITY
    LAST-UPDATED "200909220000Z"    -- 9/22/2009 00:00GMT
    ORGANIZATION "ADTRAN"
    CONTACT-INFO
       "WG-URL:
        WG-EMail: http://www.adtran.com

        Contact:  ADTRAN
                  901 Explorer Blvd
                  Huntsville, AL 35806

        E-mail:

       "
   DESCRIPTION
     "ADTRAN Generic DHCP Client Management Module"
   REVISION "200908130000Z"    -- 9/22/2009 00:00GMT
   DESCRIPTION
      ""
     ::= { adGenDhcpClientId 1 }

adGenDhcpClientMIBObjects      OBJECT IDENTIFIER  ::= { adGenDhcpClient 1 }

-- ******************************************************************
-- Tables
-- ******************************************************************

adGenDhcpClientStatus      OBJECT IDENTIFIER  ::= { adGenDhcpClientMIBObjects 1 }
adGenDhcpClientCommand     OBJECT IDENTIFIER  ::= { adGenDhcpClientMIBObjects 2 }

-- ******************************************************************
-- Textual conventions
-- ******************************************************************

AdGenDhcpClientState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Operational state DHCP Client state machine.  This state
        machine is responsible for initiating messages from the DHCP
        Client and reception of messages from one or more DHCP servers.

        init(1)                Momentary state during reset before the
                               the initial DHCP DISCOVER request is
                               transmitted by the client.
        
        selecting(2)           Waiting for DHCP OFFER messages from any
                               DHCP Servers.
                               
        requesting(3)          Waiting for DHCP ACK (or NAK) in response
                               to a client transmitted DHCP REQUEST
                               message that is requesting new or initial
                               lease information.

        bound(4)               A DHCP ACK has been received from the
                               selected DHCP server acknowledging the
                               clients lease.

        renewing(5)            Client is pausing briefly before transmission
                               of a DHCP REQUEST message to request the
                               renewal of its lease.
        
        rebinding(6)           Waiting for a DHCP ACK (or NAK) in response
                               to a client transmitted DHCP REQUEST message
                               that is requesting the renewal of current
                               lease information."
    SYNTAX INTEGER {
            init        (1),
            selecting   (2),
            requesting  (3),
            bound       (4),
            renewing    (5),
            rebinding   (6)
           }

-- ******************************************************************
-- The DHCP Client State and Status table
-- ******************************************************************

adGenDhcpClientStatusTable
OBJECT-TYPE
    SYNTAX      SEQUENCE OF AdGenDhcpClientStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table provides status information on all active DHCP
                 clients."
     ::= { adGenDhcpClientStatus 1 }

adGenDhcpClientStatusEntry OBJECT-TYPE
    SYNTAX      AdGenDhcpClientStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The DHCP Client status table entry."
    INDEX       { ifIndex }
     ::= { adGenDhcpClientStatusTable 1 }

AdGenDhcpClientStatusEntry ::= SEQUENCE {
      adGenDhcpClientStatusState               AdGenDhcpClientState,
      adGenDhcpClientStatusClientIdentifier    OCTET STRING,
      adGenDhcpClientStatusHostName            OCTET STRING,
      adGenDhcpClientStatusIpAddressType       InetAddressType,
      adGenDhcpClientStatusIpAddress           InetAddress,
      adGenDhcpClientStatusSubnetMaskType      InetAddressType,
      adGenDhcpClientStatusSubnetMask          InetAddress,
      adGenDhcpClientStatusDhcpLeaseServerType InetAddressType,
      adGenDhcpClientStatusDhcpLeaseServer     InetAddress,
      adGenDhcpClientStatusLease               Unsigned32,
      adGenDhcpClientStatusLeaseRemaining      Unsigned32,
      adGenDhcpClientStatusPrimaryDNSType      InetAddressType,
      adGenDhcpClientStatusPrimaryDNS          InetAddress,
      adGenDhcpClientStatusSecondaryDNSType    InetAddressType,
      adGenDhcpClientStatusSecondaryDNS        InetAddress,
      adGenDhcpClientStatusRoutersType         InetAddressType,
      adGenDhcpClientStatusRouters             InetAddress,
      adGenDhcpClientStatusTxDiscovery         Counter32,
      adGenDhcpClientStatusTxRequest           Counter32,
      adGenDhcpClientStatusTxDecline           Counter32,
      adGenDhcpClientStatusTxRelease           Counter32,
      adGenDhcpClientStatusTxInform            Counter32,
      adGenDhcpClientStatusRxOffer             Counter32,
      adGenDhcpClientStatusRxAck               Counter32,
      adGenDhcpClientStatusRxNak               Counter32,
      adGenDhcpClientStatusRxRunt              Counter32,
      adGenDhcpClientStatusRxInvalid           Counter32,
      adGenDhcpClientStatusRxOos               Counter32
   }

adGenDhcpClientStatusState OBJECT-TYPE
    SYNTAX      AdGenDhcpClientState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Operational state DHCP Client state machine.  This state
                 machine is responsible for initiating messages from the DHCP
                 Client and reception of messages from one or more DHCP servers"
     ::= { adGenDhcpClientStatusEntry 1 }

adGenDhcpClientStatusClientIdentifier OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(2..80))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Specifies the client identifier (DHCP Option 61) used when obtaining
                 an IP address from a DHCP server."
     ::= { adGenDhcpClientStatusEntry 2 }

adGenDhcpClientStatusHostName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (1..35))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Specifies the text string used as the name in the DHCP option 12 field.
                 The host name can consist of up to 35 characters."
     ::= { adGenDhcpClientStatusEntry 3 }

adGenDhcpClientStatusIpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusIpAddress column."
     ::= { adGenDhcpClientStatusEntry 4 }

adGenDhcpClientStatusIpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address assigned to the DHCP client.  If no IP address is
                 assigned, this object will contain the null IP address which
                 is composed of all zeros.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusIpAddressType column."
     ::= { adGenDhcpClientStatusEntry 5 }

adGenDhcpClientStatusSubnetMaskType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusSubnetMaskAddress column."
     ::= { adGenDhcpClientStatusEntry 6 }

adGenDhcpClientStatusSubnetMask OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP subnet mask options specified by DHCPv4 option 1
                 for the client to use.  This field is reported as an IP
                 address for easier display to the user.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusSubnetMaskType column."
     ::= { adGenDhcpClientStatusEntry 7 }

adGenDhcpClientStatusDhcpLeaseServerType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusDhcpLeaseServer column."
     ::= { adGenDhcpClientStatusEntry 8 }

adGenDhcpClientStatusDhcpLeaseServer OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP Address of the DHCP Server that the client
                 is either successfully obtained leased information from
                 or is currently trying to retrieve IP addresses from.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusDhcpLeaseServerType
                 column."
     ::= { adGenDhcpClientStatusEntry 9 }

adGenDhcpClientStatusLease OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of seconds that the current IP Addresss lease
                 information is valid.   This number is the value in the last
                 DHCP OFFER and is not the actual number of seconds remaining
                 before the lease will expire."
     ::= { adGenDhcpClientStatusEntry 10 }

adGenDhcpClientStatusLeaseRemaining OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of seconds left in the current IP Address lease."
     ::= { adGenDhcpClientStatusEntry 11 }

adGenDhcpClientStatusPrimaryDNSType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusPrimaryDNS column."
     ::= { adGenDhcpClientStatusEntry 12 }

adGenDhcpClientStatusPrimaryDNS OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address of the Primary Domain Name Server assigned for this
                 client.  If no Domain name servers are available or signaled by
                 the DHCP server, this object will contain the null IP address
                 which is composed of all zeros.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusPrimaryDNSType column."
     ::= { adGenDhcpClientStatusEntry 13 }

adGenDhcpClientStatusSecondaryDNSType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusSecondaryDNS column."
     ::= { adGenDhcpClientStatusEntry 14 }

adGenDhcpClientStatusSecondaryDNS OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address of the Secondary Domain Name Server assigned for this
                 client.  If no Domain name servers are available or signaled by
                 the DHCP server, this object will contain the null IP address
                 which is composed of all zeros.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusSecondaryDNSType column."
     ::= { adGenDhcpClientStatusEntry 15 }

adGenDhcpClientStatusRoutersType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address type (ipv4 or ipv6) represented by in the
                 adGenDhcpClientStatusRouters column."
     ::= { adGenDhcpClientStatusEntry 16 }

adGenDhcpClientStatusRouters OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address(es) of the gateway routers for this client.  This
                 field may contain one or more IP addresses listed in order of
                 preference.
                                  
                 The IP address version (ipv4 or ipv6) can be determined by
                 retrieval of the adGenDhcpClientStatusRoutersType column."
     ::= { adGenDhcpClientStatusEntry 17 }

adGenDhcpClientStatusTxDiscovery OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP DISCOVERY messages transmitted by this client."
     ::= { adGenDhcpClientStatusEntry 18 }

adGenDhcpClientStatusTxRequest OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP REQUEST messages transmitted by this client."
     ::= { adGenDhcpClientStatusEntry 19 }

adGenDhcpClientStatusTxDecline OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP DECLINE messages transmitted by this client."
     ::= { adGenDhcpClientStatusEntry 20 }

adGenDhcpClientStatusTxRelease OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP RELEASE messages transmitted by this client."
     ::= { adGenDhcpClientStatusEntry 21 }

adGenDhcpClientStatusTxInform OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP INFORM messages transmitted by this client."
     ::= { adGenDhcpClientStatusEntry 22 }

adGenDhcpClientStatusRxOffer OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP OFFER messages received by this client."
     ::= { adGenDhcpClientStatusEntry 23 }

adGenDhcpClientStatusRxAck OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP ACK messages received by this client."
     ::= { adGenDhcpClientStatusEntry 24 }

adGenDhcpClientStatusRxNak OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP NAK messages received by this client."
     ::= { adGenDhcpClientStatusEntry 25 }

adGenDhcpClientStatusRxRunt OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP messages received and discarded by this
                 clientthat were smaller than the minimum PDU size specified
                 by the DHCP standards."
     ::= { adGenDhcpClientStatusEntry 26 }

adGenDhcpClientStatusRxInvalid OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of DHCP messages received and discarded by this
                 client that had an Invalid format, was not a BOOT REPLY, or
                 had an invalid/unsupported DHCP Message Type option specified."
     ::= { adGenDhcpClientStatusEntry 27 }

adGenDhcpClientStatusRxOos OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of out-of-sequence DHCP OFFER, ACK, or NAK messages
                 received and discarded by this client that did not match
                 the XID of the last DHCP message sent by this client.  The proper
                 expected Rx statistic (OFFER, ACK, or NAK) is also incremented
                 when the XID mismatch is seen to aid in debugging which type of
                 received message resulted in the mismatch and the increment of
                 this counter."
     ::= { adGenDhcpClientStatusEntry 28 }

-- ******************************************************************
-- The DHCP Client State and Status table
-- ******************************************************************

adGenDhcpClientCommandTable
OBJECT-TYPE
    SYNTAX      SEQUENCE OF AdGenDhcpClientCommandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table provides a set of commands to control the operation
                 of DHCP clients."
     ::= { adGenDhcpClientCommand 1 }

adGenDhcpClientCommandEntry OBJECT-TYPE
    SYNTAX      AdGenDhcpClientCommandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The DHCP Client command table entry."
    INDEX       { ifIndex }
     ::= { adGenDhcpClientCommandTable 1 }

AdGenDhcpClientCommandEntry ::= SEQUENCE {
      adGenDhcpClientCommandRenew      INTEGER,
      adGenDhcpClientCommandRelease    INTEGER,
      adGenDhcpClientCommandResetStats INTEGER
    }
                                        
adGenDhcpClientCommandRenew OBJECT-TYPE
    SYNTAX      INTEGER { renew(1) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Writing a value of 1 will request that the DHCP client request
                 the renewal of any valid lease information by transmitting a DHCP
                 REQUEST message.  If no valid lease information is held by the
                 client, writing a value of 1 will have no effect."
     ::= { adGenDhcpClientCommandEntry 1 }
                                        
adGenDhcpClientCommandRelease OBJECT-TYPE
    SYNTAX      INTEGER { release(1) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Writing a value of 1 will request that the DHCP client request
                 the release (and invalidation) of any valid lease information by
                 transmitting a DHCP RELEASE message.  If no valid lease
                 information is held by the client, writing a value of 1 will
                 have no effect."
     ::= { adGenDhcpClientCommandEntry 2 }
                                        
adGenDhcpClientCommandResetStats OBJECT-TYPE
    SYNTAX      INTEGER { reset(1) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Writing a value of 1 will reset the statistics for the
                 DHCP client."
     ::= { adGenDhcpClientCommandEntry 3 }

END

