ENTERASYS-SNTP-CLIENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, DateAndTime, TruthValue
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    etsysModules
        FROM ENTERASYS-MIB-NAMES;

etsysSntpClientMIB MODULE-IDENTITY
    LAST-UPDATED "201103091556Z"  -- Wed Mar  9 15:56 UTC 2011
    ORGANIZATION "Enterasys Networks, Inc"
    CONTACT-INFO
        "Postal:  Enterasys Networks
                  50 Minuteman Rd.
                  Andover, MA 01801-1008
                  USA
         Phone:   +1 978 684 1000
         E-mail:  support@enterasys.com
         WWW:     http://www.enterasys.com"
   
    DESCRIPTION
        "This MIB module defines a portion of the SNMP MIB under
         the Enterasys Networks enterprise OID pertaining to 
         SNTP client configuration and statistical collection."

    REVISION    "201103091556Z"  -- Wed Mar  9 15:56 UTC 2011
    DESCRIPTION "Added support for SNTP authentication."

    REVISION    "200306131809Z"  -- Fri Jun 13 18:09 GMT 2003
    DESCRIPTION "Initial version of this MIB module."
    ::= { etsysModules 38 } 

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

SntpClientOperModes ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "A SNTP client may operate in one of several modes.
    
         -------------------------------------------------------
         --  Any or all of these modes MAY be supported on a
         --  device.
         -------------------------------------------------------

            disabled
              - SNTP is not operational.  No SNTP requests are sent
                from the device nor are any received SNTP messages
                processed.

            unicast
              - SNTP operates in a point-to-point fashion.  A unicast 
                client sends a request to a designated server
                at its unicast address and expects a reply from which
                it can determine the time and, optionally, the 
                round-trip delay and local clock offset relative to the 
                server.

            multicast
              - SNTP operates in point-to-multipoint fashion.  The
                SNTP server uses a multicast group address to send
                unsolicited SNTP messages to clients.  The client
                listens on this address and sends no requests for
                updates.

            broadcast
              - This operates in the same manner as multicast mode
                but uses an IP local broadcast address instead of a 
                multicast address.  The broadcast address is scoped
                to a single subnet, while a multicast address has 
                Internet wide scope.

            anycast
              - SNTP operates in a multipoint-to-point fashion.  The
                SNTP client sends a request to a designated IPv4 or
                IPv6 local broadcast address or multicast group
                address. One or more anycast servers reply with their 
                individual unicast addresses. The client binds to the 
                first one received, then continues operation in 
                unicast mode."

    REFERENCE
        "RFC 2030 - Simple Network Time Protocol (SNTP) Version 4
                    for IPv4, IPv6 and OSI; Section 2."
    SYNTAX BITS {
      disabled(0),
      unicast(1),
      multicast(2),
      broadcast(3),
      anycast(4)
    }

SntpClientUpdateStatus ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "SNTP client status values for directed SNTP requests 
         and processing of unsolicited SNTP messages.  These values
         are appropriate for all operational modes.

          other 
            - None of the following enumeration values.
          
          success 
            - The SNTP operation was successful and the system time
              was updated.

          requestTimedOut
            - A directed SNTP request timed out without receiving a 
              response from the SNTP server.

          badDateEncoded
            - The time provided by the SNTP server is not valid.

         versionNotSupported
            - The SNTP version supported by the server is not compatible
              with the version supported by the client.

         serverUnsychronized
            - The SNTP server is not synchronized with its peers.  This
              is indicated via the 'leap indicator' field on the SNTP 
              message." 

    REFERENCE
        "RFC 2030 - Simple Network Time Protocol (SNTP) Version 4
                    for IPv4, IPv6 and OSI; Section 4."
    SYNTAX INTEGER {
      other(1),
      success(2),
      requestTimedOut(3),
      badDateEncoded(4),
      versionNotSupported(5),
      serverUnsychronized(6)
    }

-- -------------------------------------------------------------
-- MIB Objects
-- -------------------------------------------------------------

etsysSntpClientObjects   OBJECT IDENTIFIER ::= { etsysSntpClientMIB 1 }

etsysSntpClientDevice    OBJECT IDENTIFIER 
         ::= { etsysSntpClientObjects 1 }

etsysSntpClientUnicast   OBJECT IDENTIFIER 
         ::= { etsysSntpClientObjects 2 }

etsysSntpClientMulticast OBJECT IDENTIFIER 
         ::= { etsysSntpClientObjects 3 }

etsysSntpClientBroadcast OBJECT IDENTIFIER 
         ::= { etsysSntpClientObjects 4 }

etsysSntpClientAnycast   OBJECT IDENTIFIER 
         ::= { etsysSntpClientObjects 5 }

-- -------------------------------------------------------------
-- SNTP Client Device Group
-- -------------------------------------------------------------

etsysSntpClientVersion OBJECT-TYPE
    SYNTAX      INTEGER {
                    version1(1),
                    version2(2),
                    version3(3),
                    version4(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The SNTP version this device supports.  As specified in
         RFC 2030, higher versions are required to be backwards 
         compatible with all lower versions with the exception of
         version 0."
    REFERENCE
        "RFC 2030 - Simple Network Time Protocol (SNTP) Version 4
                    for IPv4, IPv6 and OSI; Section 5."
    ::= { etsysSntpClientDevice 1 }

etsysSntpClientSupportedMode OBJECT-TYPE
    SYNTAX      SntpClientOperModes
    MAX-ACCESS  read-only
    STATUS      current 
    DESCRIPTION
        "The SNTP client operational modes that this device supports."
    ::= { etsysSntpClientDevice 2 }

etsysSntpClientMode OBJECT-TYPE
    SYNTAX      SntpClientOperModes 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current operational mode of the SNTP client.  A SET 
         of this object will cause the SNTP client to change 
         operational modes.  A SET request MUST have only 1 bit
         set since is not possible to operate in multiple modes 
         simultaneously.  SETs of this object are further limited 
         to values supported by the device as specified by 
         etsysSntpClientSupportedMode.  Maintaining the value of this 
         object across agent reboots is REQUIRED."
    DEFVAL { { disabled } }
    ::= { etsysSntpClientDevice 3 }

etsysSntpClientLastUpdateTime OBJECT-TYPE
    SYNTAX      DateAndTime (SIZE(8))
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The local date and time that the SNTP client last updated the
         system time on the device since agent reboot.  This time is 
         updated for all non-disabled operational modes of the SNTP 
         client.  If the SNTP client has not updated the time then
         this object MUST return '00000000'H."
    DEFVAL { '00000000'H }
    ::= { etsysSntpClientDevice 4 }

etsysSntpClientLastAttemptTime OBJECT-TYPE
    SYNTAX      DateAndTime (SIZE(8))
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The local date and time of the last SNTP request or 
         unsolicited SNTP message for this SNTP client since agent 
         reboot.  Essentially, this value is a timestamp for the 
         etsysSntpClientLastAttemptStatus object.  When the 
         etsysSntpClientLastAttemptStatus has a value of success(2),
         this object's value should be equal to the value returned by
         etsysSntpClientLastUpdateTime.  If no SNTP frames have been
         processed by the SNTP client then this value MUST return
         '00000000'H.  This object is updated for all non-disabled 
         operational modes of the SNTP client."
    DEFVAL { '00000000'H }
    ::= { etsysSntpClientDevice 5 }

etsysSntpClientLastAttemptStatus OBJECT-TYPE
    SYNTAX      SntpClientUpdateStatus
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The status of the last SNTP request or unsolicited SNTP
         message for this SNTP client since agent reboot.  The status is
         updated for all non-disabled operational modes of the SNTP 
         client."
    DEFVAL { other }
    ::= { etsysSntpClientDevice 6 }

etsysSntpClientAuthenticationEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A flag indicating if SNTP authentication is enabled
        for the client device."
    DEFVAL { false }
    ::= { etsysSntpClientDevice 7 }

etsysSntpClientMaxAuthenticationKeys OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of authentication key entries."
    ::= { etsysSntpClientDevice 8 }

-- -------------------------------------------------------------
-- SNTP Client Unicast Group
-- -------------------------------------------------------------

etsysSntpClientUnicastPollInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (16..16284)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds between successive SNTP request
         transmissions.  This polling interval is used for directed
         SNTP requests in unicast(1) operational mode.  Maintaining the
         value of this object across agent reboots is REQUIRED."
    DEFVAL { 512 } 
    ::= { etsysSntpClientUnicast 1 }

etsysSntpClientUnicastPollTimeout OBJECT-TYPE
    SYNTAX      Unsigned32 (1..30)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds to wait for a response from a SNTP
         server before considering the attempt to have 'timed out'.
         This timeout is used for directed SNTP requests in unicast(1)
         operational mode.  Maintaining the value of this object across
         agent reboots is REQUIRED."
    DEFVAL { 5 }
    ::= { etsysSntpClientUnicast 2 }

etsysSntpClientUnicastPollRetry OBJECT-TYPE
    SYNTAX      Unsigned32 (0..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of times to retry a request to a SNTP server
         that has not successfully responded.  This retry count is
         used for directed SNTP requests in unicast(1) operational mode.
         For example, assume this object has been SET to a value of 2.
         When the SNTP client queries a given server it will send 1 SNTP
         request frame.  If that original attempt fails, the client will
         retry up to a maximum of 2 more times before giving up and 
         attempting the next server.  Maintaining the value of this 
         object across agent reboots is REQUIRED."
    DEFVAL { 1 }
    ::= { etsysSntpClientUnicast 3 }

etsysSntpClientUServerMaxEntries OBJECT-TYPE
    SYNTAX      Unsigned32 (1..10)
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The maximum number of server entries that are allowed in the 
         etsysSntpClientUServerTable."
    ::= { etsysSntpClientUnicast 4 }

etsysSntpClientUServerCurrEntries OBJECT-TYPE
    SYNTAX      Gauge32 (0..10)
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The current number of server entries in the 
         etsysSntpClientUServerTable."
    ::= { etsysSntpClientUnicast 5 }

etsysSntpClientUServerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EtsysSntpClientUServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing configuration and statistical 
         information for unicast SNTP servers.  Each server
         entry is represented by single conceptual row in this
         table."
    ::= { etsysSntpClientUnicast 6 }

etsysSntpClientUServerEntry OBJECT-TYPE
    SYNTAX      EtsysSntpClientUServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information for a particular unicast SNTP server."
    INDEX { etsysSntpClientUServerAddrType, etsysSntpClientUServerAddr }
    ::= { etsysSntpClientUServerTable 1 }

EtsysSntpClientUServerEntry ::=
    SEQUENCE {
        etsysSntpClientUServerAddrType
            InetAddressType,
        etsysSntpClientUServerAddr
            InetAddress,
        etsysSntpClientUServerPrecedence
            Unsigned32,
        etsysSntpClientUServerLastUpdateTime
            DateAndTime,
        etsysSntpClientUServerLastAttemptTime
            DateAndTime,
        etsysSntpClientUServerLastAttemptStatus
            SntpClientUpdateStatus,
        etsysSntpClientUServerNumRequests
            Counter32,
        etsysSntpClientUServerNumFailedRequests
            Counter32,
        etsysSntpClientUServerStatus
            RowStatus,
        etsysSntpClientUServerAuthKey
            Unsigned32
    }

etsysSntpClientUServerAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies how etsysSntpClientUServerAddr is
         encoded.  Support for all possible enumerations defined by 
         InetAddressType is NOT REQUIRED."
    ::= { etsysSntpClientUServerEntry 1 }
 
etsysSntpClientUServerAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(1..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The encoded unicast IP address or hostname of a SNTP server.  
         Unicast SNTP requests will be sent to this address.  If this
         address is a DNS hostname, then that hostname SHOULD be 
         resolved into an IP address each time a SNTP request is sent 
         to it."
    ::= { etsysSntpClientUServerEntry 2 }
  
etsysSntpClientUServerPrecedence OBJECT-TYPE
    SYNTAX      Unsigned32 (1..10)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The precedence that this server has in relation to its peers 
         in the determining the sequence of servers that SNTP requests
         will be sent to.  

         When the poll interval, as specified by 
         etsysSntpClientUnicastPollInterval, expires the SNTP client on 
         this device will send SNTP requests to the servers listed in 
         this table.  The client will continue sending requests to 
         different servers until a successful response is received or 
         all servers are exhausted.  This object indicates the order in 
         which to query the servers.  A server entry with a precedence 
         of 1 will be queried before a server with a precedence of 2, 
         and so forth.  If more than one server has the same precedence 
         then the requesting order will follow the lexicographical 
         ordering of the entries in this table." 
    DEFVAL { 1 }
    ::= { etsysSntpClientUServerEntry 3 }

etsysSntpClientUServerLastUpdateTime OBJECT-TYPE
    SYNTAX      DateAndTime (SIZE(8))
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The local date and time that the response from this server was 
         used to update the system time on the device since agent 
         reboot.  If the SNTP client has not updated the time using
         a response from this server then this object MUST return 
         '00000000'H."
    DEFVAL { '00000000'H }
    ::= { etsysSntpClientUServerEntry 4 }

etsysSntpClientUServerLastAttemptTime OBJECT-TYPE
    SYNTAX      DateAndTime (SIZE(8))
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The local date and time that this SNTP server was last queried
         since agent reboot.  Essentially, this value is a
         timestamp for the etsysSntpClientUServerLastAttemptStatus
         object.  If this server has not been queried then this object
         MUST return '00000000'H."
    DEFVAL { '00000000'H }
    ::= { etsysSntpClientUServerEntry 5 }

etsysSntpClientUServerLastAttemptStatus OBJECT-TYPE
    SYNTAX      SntpClientUpdateStatus
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The status of the last SNTP request to this server since
         agent reboot.  If no requests have been made then this object
         should return 'other'."
    DEFVAL { other }
    ::= { etsysSntpClientUServerEntry 6 }

etsysSntpClientUServerNumRequests OBJECT-TYPE
    SYNTAX      Counter32 
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The number of SNTP requests made to this server since
         the last agent reboot.  This includes retry attempts to
         the server."
    ::= { etsysSntpClientUServerEntry 7 }

etsysSntpClientUServerNumFailedRequests OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of SNTP requests made to this server that did
         not result in a successful response since the last agent 
         reboot.  This includes retry attempts to the server."
    ::= { etsysSntpClientUServerEntry 8 }

etsysSntpClientUServerStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The row status of this conceptual row in the table. 

         active 
            - The server is available for use in SNTP client operations.
              Other writable leaves in this table MAY be modified while 
              the row is in the active state.

         notInService
            - The entry is fully configured but is not available for
              use in SNTP client operations.  Conceptual rows with this
              status MAY be deleted at the discretion of the agent,
              at which time it will be treated as if destroy(6) was SET 
              to this object.

         createAndGo
            - This is the preferred mechanism for creating conceptual 
              rows in this table.  All writable leaves have default  
              values so createAndGo will always transition a new entry
              to the active state.

         destroy
            - This will remove the conceptual row from the table and 
              make it unavailable for SNTP client operations.  This MUST
              also cause any persistent data related to this row to be 
              removed from the system.

          Maintaining active(1) entries across agent reboots is 
          REQUIRED."
    ::= { etsysSntpClientUServerEntry 9 }

etsysSntpClientUServerAuthKey OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The key ID number which is used by the server for
        SNTP authentication"
    DEFVAL { 0 }
    ::= { etsysSntpClientUServerEntry 10 }

etsysSntpClientUAuthKeyTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EtsysSntpClientUAuthKeyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing configuration information for trusted
        and untrusted SNTP authentication keys."
    ::= { etsysSntpClientUnicast 7 }

etsysSntpClientUAuthKeyEntry OBJECT-TYPE
    SYNTAX      EtsysSntpClientUAuthKeyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information for a particular SNTP authentication key."
    INDEX { etsysSntpClientUAuthKey }
    ::= { etsysSntpClientUAuthKeyTable 1 }

EtsysSntpClientUAuthKeyEntry ::=
    SEQUENCE {
        etsysSntpClientUAuthKey
            Unsigned32,
        etsysSntpClientUAuthType
            INTEGER,
        etsysSntpClientUAuthValue
            OCTET STRING,
        etsysSntpClientUKeyTrusted
            TruthValue,
        etsysSntpClientUAuthKeyStatus
            RowStatus
    }

etsysSntpClientUAuthKey OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies the authentication key number
        of the authentication key entry."
    ::= { etsysSntpClientUAuthKeyEntry 1 }
 
etsysSntpClientUAuthType OBJECT-TYPE
    SYNTAX      INTEGER {
         md5(1),
         sha-1(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the encryption algorithm
        used for SNTP authentication."
    DEFVAL { md5 }
    ::= { etsysSntpClientUAuthKeyEntry 2 }

etsysSntpClientUAuthValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION 
        "This object specifies the authentication password
        which is used by the encryption algorithm for
        authentication."
    DEFVAL { ''H }
    ::= { etsysSntpClientUAuthKeyEntry 3 }

etsysSntpClientUKeyTrusted OBJECT-TYPE
    SYNTAX      TruthValue 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A flag indicating if this key is a trusted key."
    DEFVAL { false }
    ::= { etsysSntpClientUAuthKeyEntry 4 }


etsysSntpClientUAuthKeyStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The row status of this conceptual row in the table. 

         createAndGo
            - This is the preferred mechanism for creating conceptual 
              rows in this table. All value contain a default value.
              If configured to use an etsysSntpClientUAuthKeyTable for
              authentication, etsysSntpClientUAuthValue must contain a
              OCTET STRING with a length greater than zero.

         destroy
            - This will remove the conceptual row from the table and 
              make it unavailable for SNTP client operations.  This MUST
              also cause any persistent data related to this row to be 
              removed from the system.

          Maintaining active(1) entries across agent reboots is 
          REQUIRED."
    DEFVAL { createAndGo }
    ::= { etsysSntpClientUAuthKeyEntry 5 }

-- -------------------------------------------------------------
-- SNTP Client Multicast Group
-- -------------------------------------------------------------

etsysSntpClientMulticastDelay OBJECT-TYPE
    SYNTAX      Unsigned32 (1..999999)
    UNITS       "microseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of microseconds it takes for an unsolicited 
         SNTP multicast message to travel from the SNTP server to the 
         SNTP client.  This value is added to the time encoded in the 
         SNTP message to derive the correct system time.  Maintaining 
         the value of this object across agent reboots is REQUIRED."
    DEFVAL { 3000 }
    ::= { etsysSntpClientMulticast 1 }

etsysSntpClientMulticastCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of unsolicited multicast SNTP messages that have 
         been received and processed by the SNTP client.  Unsolicited
         SNTP multicast frames will not be counted unless the SNTP
         agent is operating in multicast(2) mode, as specified by
         etsysSntpClientMode.  Maintaining the value of this object 
         across agent reboots is NOT RECOMMENDED."
    ::= { etsysSntpClientMulticast 2 }

-- -------------------------------------------------------------
-- SNTP Client Broadcast Group
-- -------------------------------------------------------------

etsysSntpClientBroadcastDelay OBJECT-TYPE
    SYNTAX      Unsigned32 (1..999999)
    UNITS       "microseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of microseconds it takes for an unsolicited SNTP
         broadcast message to travel from the SNTP server to the SNTP
         client.  This value is added to the time encoded in the SNTP 
         message to derive the correct time.  Maintaining the value of 
         this object across reboots is REQUIRED."
    DEFVAL { 3000 }
    ::= { etsysSntpClientBroadcast 1 }

etsysSntpClientBroadcastCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of unsolicited broadcast SNTP messages that have 
         been received and processed by the SNTP client.  Unsolicited
         SNTP broadcast frames will not be counted unless the SNTP
         agent is operating in broadcast(3) mode, as specified by
         etsysSntpClientMode.  Maintaining the value of this object 
         across agent reboots is NOT RECOMMENDED."
    ::= { etsysSntpClientBroadcast 2 }

-- -------------------------------------------------------------
-- SNTP Client Anycast Group
-- -------------------------------------------------------------

etsysSntpClientAnycastBindRequestInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (16..16284)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds between SNTP anycast bind requests. 
         This polling interval is used when the SNTP client is in 
         anycast(4) operational mode and it is not bound to a SNTP 
         server.  Maintaining the value of this object across agent 
         reboots is REQUIRED."
    DEFVAL { 20 }
    ::= { etsysSntpClientAnycast 1 }

etsysSntpClientAnycastPollInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (16..16284)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds between SNTP request transmissions.  
         This polling interval is used for directed SNTP requests 
         in anycast(4) operational mode.  Maintaining the value of 
         this object across agent reboots is REQUIRED."
    DEFVAL { 512 }
    ::= { etsysSntpClientAnycast 2 }

etsysSntpClientAnycastPollTimeout OBJECT-TYPE
    SYNTAX      Unsigned32 (1..30)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds to wait for a response from a SNTP
         server before considering the unicast request attempt to have 
         'timed out'.  This timeout is used for directed SNTP requests 
         in anycast(4) operational mode.  Maintaining the value of this 
         object across agent reboots is REQUIRED."
    DEFVAL { 5 }
    ::= { etsysSntpClientAnycast 3 }

etsysSntpClientAnycastPollRetry OBJECT-TYPE
    SYNTAX      Unsigned32 (0..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of times to retry a unicast request to a SNTP server
         that has not successfully responded.  This retry count is 
         used for directed SNTP requests in anycast(4) operational mode.
         For example, assume this object has been SET to a value of 2.
         When the SNTP client queries the bound server it will send 1 
         SNTP request frame.  If that original attempt fails,  the 
         client will retry up to a maximum of 2 more times before 
         giving up and unbinding from the server.  Once the client 
         becomes unbound it will start sending out anycast bind 
         requests at an interval specified by
         etsysSntpClientAnycastBindRequestInterval.  Maintaining the 
         value of this object across agent reboots is REQUIRED."
    DEFVAL { 5 }
    ::= { etsysSntpClientAnycast 4 }

etsysSntpClientAnycastServerAddrType OBJECT-TYPE
    SYNTAX      InetAddressType 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies how etsysSntpClientAnycastServerAddr is
         encoded.  If the SNTP client is not bound to a server this 
         object MUST return unknown(0).  Maintaining the value of this 
         object across agent reboots is NOT RECOMMENDED.  Support for 
         all possible enumerations defined by InetAddressType is NOT 
         REQUIRED."
    ::= { etsysSntpClientAnycast 5 }

etsysSntpClientAnycastServerAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The encoded unicast IP address or hostname of the SNTP server
         that we are bound to in anycast mode.  If the SNTP client is
         not bound to a server this object MUST return a zero-length 
         string.  Maintaining the value of this object across agent 
         reboots is NOT RECOMMENDED."
    ::= { etsysSntpClientAnycast 6 }

etsysSntpClientAnycastNumRequests OBJECT-TYPE
    SYNTAX      Counter32 
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The number of anycast bind requests sent from this device
         since the last agent reboot."
    ::= { etsysSntpClientAnycast 7 }

etsysSntpClientAnycastNumPollRequests OBJECT-TYPE
    SYNTAX      Counter32 
    MAX-ACCESS  read-only  
    STATUS      current  
    DESCRIPTION  
        "The number of unicast poll requests sent from this device
         while in anycast(4) operational mode since the last agent 
         reboot.  Unicast poll requests are only sent once the SNTP 
         client has bound to a server.  This includes retry attempts to
         the server."
    ::= { etsysSntpClientAnycast 8 }

-- -------------------------------------------------------------
-- Conformance Information
-- -------------------------------------------------------------

etsysSntpClientConformance OBJECT IDENTIFIER 
          ::= { etsysSntpClientMIB 2 }

etsysSntpClientGroups      OBJECT IDENTIFIER 
          ::= { etsysSntpClientConformance 1 }

etsysSntpClientCompliances OBJECT IDENTIFIER 
          ::= { etsysSntpClientConformance 2 }

-- -------------------------------------------------------------
-- Units of conformance
-- -------------------------------------------------------------

etsysSntpClientDeviceGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientVersion,
        etsysSntpClientSupportedMode,
        etsysSntpClientMode,
        etsysSntpClientLastUpdateTime,
        etsysSntpClientLastAttemptTime,
        etsysSntpClientLastAttemptStatus
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing device level control of
         a SNTP client on Enterasys Network's devices."
    ::= { etsysSntpClientGroups 1 }

etsysSntpClientUnicastGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientUnicastPollInterval,
        etsysSntpClientUnicastPollTimeout,
        etsysSntpClientUnicastPollRetry,
        etsysSntpClientUServerMaxEntries,
        etsysSntpClientUServerCurrEntries,
        etsysSntpClientUServerPrecedence,
        etsysSntpClientUServerLastUpdateTime,
        etsysSntpClientUServerLastAttemptTime,
        etsysSntpClientUServerLastAttemptStatus,
        etsysSntpClientUServerNumRequests,
        etsysSntpClientUServerNumFailedRequests,
        etsysSntpClientUServerStatus
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing control and statistics for
         a SNTP client capable of operating in unicast mode."
    ::= { etsysSntpClientGroups 2 }

etsysSntpClientMulticastGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientMulticastDelay,
        etsysSntpClientMulticastCount
    }    
    STATUS      current
    DESCRIPTION
        "A collection of objects providing control and statistics for
         a SNTP client capable of operating in multicast mode."
    ::= { etsysSntpClientGroups 3 }

etsysSntpClientBroadcastGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientBroadcastDelay,
        etsysSntpClientBroadcastCount
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing control and statistics for
         a SNTP client capable of operating in broadcast mode."
    ::= { etsysSntpClientGroups 4 }

etsysSntpClientAnycastGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientAnycastBindRequestInterval,
        etsysSntpClientAnycastPollInterval,
        etsysSntpClientAnycastPollTimeout,
        etsysSntpClientAnycastPollRetry,
        etsysSntpClientAnycastServerAddrType,
        etsysSntpClientAnycastServerAddr,
        etsysSntpClientAnycastNumRequests,
        etsysSntpClientAnycastNumPollRequests
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing control and statistics for
         a SNTP client capable of operating in anycast mode."
    ::= { etsysSntpClientGroups 5 }

etsysSntpClientUnicastAuthenticationGroup OBJECT-GROUP
    OBJECTS {
        etsysSntpClientAuthenticationEnable,
        etsysSntpClientMaxAuthenticationKeys,
        etsysSntpClientUServerAuthKey,
        etsysSntpClientUAuthKey,
        etsysSntpClientUAuthType,
        etsysSntpClientUAuthValue,
        etsysSntpClientUKeyTrusted,
        etsysSntpClientUAuthKeyStatus
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing control and statistics for
         a SNTP client capable of operating in unicast mode with
         authentication."
    ::= { etsysSntpClientGroups 6 }

-- -------------------------------------------------------------
-- Compliance statements
-- -------------------------------------------------------------

etsysSntpClientCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for devices that support 
         etsysSntpClientMIB."

    MODULE
        MANDATORY-GROUPS { etsysSntpClientDeviceGroup }

        GROUP       etsysSntpClientUnicastGroup
        DESCRIPTION
            "This group is REQUIRED for devices supporting operation
             of a SNTP client in unicast mode."

        GROUP       etsysSntpClientMulticastGroup
        DESCRIPTION
            "This group is REQUIRED for devices supporting operation
             of a SNTP client in multicast mode."

        GROUP       etsysSntpClientBroadcastGroup
        DESCRIPTION
            "This group is REQUIRED for devices supporting operation
             of a SNTP client in broadcast mode."

        GROUP       etsysSntpClientAnycastGroup
        DESCRIPTION
            "This group is REQUIRED for devices supporting operation
             of a SNTP client in anycast mode."

        GROUP       etsysSntpClientUnicastAuthenticationGroup
        DESCRIPTION
            "This group is REQUIRED for devices supporting operation
             of a SNTP client authentication in unicast mode."
    
    ::= { etsysSntpClientCompliances 1 }

END
