--
--  LigoWave Generic MIB
--

LIGO-GENERIC-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    sysLocation
        FROM SNMPv2-MIB
    InetAddress, InetAddressType
        FROM INET-ADDRESS-MIB
    ligoMgmt
        FROM LIGOWAVE-MIB;

ligoGenericMIB MODULE-IDENTITY
    LAST-UPDATED    "201601150000Z"
    ORGANIZATION    "LigoWave"
    CONTACT-INFO    "
        LigoWave Customer Support
        E-mail: support@ligowave.com"
    DESCRIPTION
        "The LigoWave Generic MIB."
    REVISION      "201601150000Z"
    DESCRIPTION
        "Added ligoPingHostsTable table and ligoHeartbeat, ligoHighPing
         notifications."
    REVISION    "200902130000Z"
    DESCRIPTION
        "First revision."
    ::= { ligoMgmt 1 }

ligoGenericMIBObjects
        OBJECT IDENTIFIER ::= { ligoGenericMIB 1 }

ligoGenericNotifs
        OBJECT IDENTIFIER ::= { ligoGenericMIBObjects 0 }
ligoGenericInfo
        OBJECT IDENTIFIER ::= { ligoGenericMIBObjects 1 }

ligoPingHostsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LigoPingHostsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "If ligoHighPing notification is enabled, this table contains
            information with IP addresses and moving average value of their
            ping time."
    ::= { ligoGenericInfo 2 }

ligoPingHostsEntry OBJECT-TYPE
    SYNTAX     LigoPingHostsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "Ping time data for particular IP address."
    INDEX { ligoPingAddrType, ligoPingAddr }
    ::= { ligoPingHostsTable 1 }

LigoPingHostsEntry ::= SEQUENCE {
        ligoPingAddrType     InetAddressType,
        ligoPingAddr         InetAddress,
        ligoPingTime         Integer32,
        ligoPingHost         DisplayString
    }

ligoPingAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of ligoPingAddr."
    ::= { ligoPingHostsEntry 1 }

ligoPingAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The IP address. The address type of this object is specified in
            ligoPingAddrType."
    ::= { ligoPingHostsEntry 2 }

ligoPingTime OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "ms"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The latest moving average value of ping time in milliseconds.
            Value -1 indicates unknown or unreachable host."
    ::= { ligoPingHostsEntry 3 }

ligoPingHost OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The hostname/domain name of a ping target if it was specified
            instead of an IP address in this service's configuration."
    ::= { ligoPingHostsEntry 4 }

--
-- Notifications
--

ligoPowerLoss NOTIFICATION-TYPE
    OBJECTS { sysLocation }
    STATUS      current
    DESCRIPTION
        "This notification is sent on device boot after power loss or device crash."
    ::= { ligoGenericNotifs 1 }

ligoAdministrativeReboot NOTIFICATION-TYPE
    OBJECTS { sysLocation }
    STATUS      current
    DESCRIPTION
        "This notification is sent on device boot after administrator rebooted device."
    ::= { ligoGenericNotifs 2 }

ligoHeartbeat NOTIFICATION-TYPE
    OBJECTS { sysLocation }
    STATUS      current
    DESCRIPTION
        "This is a periodic heartbeat notification."
    ::= { ligoGenericNotifs 3 }

ligoHighPing NOTIFICATION-TYPE
    OBJECTS { sysLocation, ligoPingTime }
    STATUS      current
    DESCRIPTION
        "This notification is send when ping time is over a specified value."
    ::= { ligoGenericNotifs 4 }

END
