--
-- @Description: MIB for Interface Traps
-- @Date       : 2014-06-25
--

IF-TRAP DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    systemNotification
        FROM VERSA-MIB
    alarmIndex, alarmType, alarmDevice, alarmObject,
    alarmSpecificProblem, alarmEventType, alarmProbableCause,
    alarmTime, alarmSeverity, alarmHasClear, alarmText,
    tenantName, thresholdStatus, alarmClass, currentUtilization
        FROM TRAPS-COMMON;

iftrapMIB MODULE-IDENTITY
    LAST-UPDATED "201406250000Z"
    ORGANIZATION "Versa Networks"
    CONTACT-INFO "
        2953 Bunker Hill Lane, Suite 210
        Santa Clara, CA - 95035 (USA)
        Email: support@versa-networks.com"
    DESCRIPTION  "Versa Networks' Enterprise MIB for Interface traps"
    ::= { systemNotification 3 }

-- Root Object
ifEntities OBJECT IDENTIFIER ::= { iftrapMIB 1 }
ifNotification OBJECT IDENTIFIER ::= { iftrapMIB 2 }

ifIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "A unique value, greater than zero, for each interface.
            It is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization"
    ::= { ifEntities 1 }


ifOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),        -- ready to pass packets
                down(2),
                testing(3),   -- in some test mode
                unknown(4),   -- status can not be determined
                              -- for some reason.
                dormant(5),
                notPresent(6),    -- some component is missing
                lowerLayerDown(7) -- down due to state of
                                  -- lower-layer interface(s)
            }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The current operational state of the interface.  The
            testing(3) state indicates that no operational packets can
            be passed.  If ifAdminStatus is down(2) then ifOperStatus
            should be down(2).  If ifAdminStatus is changed to up(1)
            then ifOperStatus should change to up(1) if the interface is
            ready to transmit and receive network traffic; it should
            change to dormant(5) if the interface is waiting for
            external actions (such as a serial line waiting for an
            incoming connection); it should remain in the down(2) state
            if and only if there is a fault that prevents it from going
            to the up(1) state; it should remain in the notPresent(6)
            state if the interface has missing (typically, hardware)
            components"
    ::= { ifEntities 2 }


ifAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),       -- ready to pass packets
                down(2),
                testing(3)   -- in some test mode
            }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION  "The desired state of the interface.  The testing(3) state
            indicates that no operational packets can be passed.  When a
            managed system initializes, all interfaces start with
            ifAdminStatus in the down(2) state.  As a result of either
            explicit management action or per configuration information
            retained by the managed system, ifAdminStatus is then
            changed to either the up(1) or testing(3) states (or remains
            in the down(2) state)"
    ::= { ifEntities 3 }


ifOrderId OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "A string describing order id"
    ::= { ifEntities 4 }


interfaceUp NOTIFICATION-TYPE
    OBJECTS {
        alarmType,  alarmDevice, alarmObject, alarmSpecificProblem,
        alarmClass, alarmEventType, alarmProbableCause, alarmTime,
        alarmSeverity, alarmHasClear, alarmText, tenantName,
        ifOperStatus, ifIndex, ifAdminStatus, ifOrderId
    }
    STATUS  current
    DESCRIPTION "Interface up notification"
        ::= { ifNotification 1 }


interfaceDown NOTIFICATION-TYPE
    OBJECTS {
        alarmType, alarmDevice, alarmObject, alarmSpecificProblem,
        alarmClass, alarmEventType, alarmProbableCause, alarmTime,
        alarmSeverity, alarmHasClear, alarmText, tenantName,
        ifOperStatus, ifIndex, ifAdminStatus, ifOrderId
    }
    STATUS  current
    DESCRIPTION "Interface down notification"
        ::= { ifNotification 2 }


uplinkBwThreshold NOTIFICATION-TYPE
    OBJECTS {
        alarmType, alarmDevice, alarmObject, alarmSpecificProblem,
        alarmClass, alarmEventType, alarmProbableCause, alarmTime,
        alarmSeverity, alarmHasClear, alarmText, thresholdStatus
    }
    STATUS  current
    DESCRIPTION "Uplink bandwidth exceeded"
        ::= { ifNotification 3 }


dnlinkBwThreshold NOTIFICATION-TYPE
    OBJECTS {
        alarmType, alarmDevice, alarmObject, alarmSpecificProblem,
        alarmClass, alarmEventType, alarmProbableCause, alarmTime,
        alarmSeverity, alarmHasClear, alarmText, thresholdStatus,
        currentUtilization
    }
    STATUS  current
    DESCRIPTION "Downlink bandwidth exceeded"
        ::= { ifNotification 4 }

END
