-- =====================================================================
-- Copyright (c) 2004-2022 New H3C Tech.  Co., Ltd.  All rights reserved.
--
-- Description: CFD MIB
-- Reference:
-- Version: V1.3
-- History:
--   V1.0 Initial version, created by Wang Meng
--   V1.1 2022-06-28 Updated by Zheng Jun
--     Add hh3cCfdUnexpectedMDLevel, hh3cCfdMismerge, hh3cCfdLOC
--     trap info
--   V1.2 2022-07-18 Updated by Zheng Jun
--     Add hh3cCfdUnexpectedMEP, hh3cCfdUnexpectedPeriod, hh3cCfdExceptionMACStatus,
--     hh3cCfdRDI, hh3cCfdAisDefectAlarm, hh3cCfdAisDefectAlarmRecovery,
--     trap info
--   V1.3 2022-10-10 Updated by Zheng Jun
--     Add hh3cCfdSlmStatisticClear trap info
-- =====================================================================
HH3C-CFD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hh3cCommon
        FROM HH3C-OID-MIB
    Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI;

hh3cCfd MODULE-IDENTITY
    LAST-UPDATED "202210101139Z"    -- OCT 10, 2022 at 11:39 GMT
    ORGANIZATION
        "New H3C Technologies Co., Ltd."
    CONTACT-INFO
        "
        Platform Team New H3C Tech.  Co., Ltd.
        Hai-Dian District Beijing P.R.  China
        http://www.h3c.com
        Zip:100085
        "
    DESCRIPTION
        "Add hh3cCfdSlmStatisticClear trap info."
    REVISION "202210101139Z"
    DESCRIPTION
        "Add hh3cCfdUnexpectedMEP, hh3cCfdUnexpectedPeriod,
        hh3cCfdExceptionMACStatus and other trap info."
    REVISION "202207181021Z"
    DESCRIPTION
        "Add hh3cCfdUnexpectedMDLevel, hh3cCfdMismerge and hh3cCfdLOC trap info."
    REVISION "202206281928Z"
    DESCRIPTION
        "The Connectivity Fault Detection(CFD) extend MIB."
    REVISION "202107191126Z"
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { hh3cCommon 207 }

-- trap --
hh3cCfdTrap      OBJECT IDENTIFIER ::= { hh3cCfd 1 }

-- All trap definitions should be placed under this object.
hh3cCfdTrapPrex OBJECT IDENTIFIER ::= { hh3cCfdTrap 0 }

hh3cCfdTwowayDelay NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMepId,
            hh3cCfdSrvId,
            hh3cCfdTimeThreshold
        }
    STATUS       current
    DESCRIPTION
        "The result of two-way delay-measurement exceeded the threshold."
 ::= { hh3cCfdTrapPrex 1 }

hh3cCfdTwowayDelayRecovery NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMepId,
            hh3cCfdSrvId,
            hh3cCfdTimeThreshold
        }
    STATUS       current
    DESCRIPTION
        "The result of two-way delay-measurement is under the threshold."
    ::= { hh3cCfdTrapPrex 2 }

hh3cCfdSlmStatistic NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdFrameEnd,
            hh3cCfdMepId,
            hh3cCfdSrvId,
            hh3cCfdStatisticThreshold
        }
     STATUS       current
     DESCRIPTION
         "The result of one-way LM is exceeded the threshold."
     ::= { hh3cCfdTrapPrex 3 }

hh3cCfdUnexpectedMDLevel NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "The MD level carried in a CCM sent by the RMEP
          was different from that specified on the MEP."
     ::= { hh3cCfdTrapPrex 4 }

hh3cCfdMismerge NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "An MD or MA name carried in a CCM sent by the
          RMEP was different from that specified on the MEP."
     ::= { hh3cCfdTrapPrex 5 }

hh3cCfdLoc NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "The MEP received no CCM in an interval of 3.5
          times the CCM sending interval."
     ::= { hh3cCfdTrapPrex 6 }

hh3cCfdUnexpectedMEP NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "The MEP received a CCM with unexpected MEP."
     ::= { hh3cCfdTrapPrex 7 }

hh3cCfdUnexpectedPeriod NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "The MEP received a CCM with unexpected period."
     ::= { hh3cCfdTrapPrex 8 }

hh3cCfdExceptionMACStatus NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "The MEP received a CCM with the Port Status TLV or
         Interface Status TLV reporting an error status."
     ::= { hh3cCfdTrapPrex 9 }

hh3cCfdRDI NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "The MEP received a CCM with RDI flag set."
     ::= { hh3cCfdTrapPrex 10 }

hh3cCfdAisDefectAlarm NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP enters AIS defect condition."
     ::= { hh3cCfdTrapPrex 11 }

hh3cCfdAisDefectAlarmRecovery NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP exits AIS defect condition."
     ::= { hh3cCfdTrapPrex 12 }

hh3cCfdUnexpectedMDLevelClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP did not receive any CCM with
         unexpected MD level before timeout."
     ::= { hh3cCfdTrapPrex 13 }

hh3cCfdMismergeClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP did not receive any CCM with
         unexpected MEG ID before timeout."
     ::= { hh3cCfdTrapPrex 14 }

hh3cCfdUnexpectedMEPClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP did not receive any CCM
         with unexpected MEP before timeout."
     ::= { hh3cCfdTrapPrex 15 }

hh3cCfdUnexpectedPeriodClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP did not receive any CCM with
         unexpected period before timeout."
     ::= { hh3cCfdTrapPrex 16 }

hh3cCfdLOCClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP is reconnected with the remote MEP."
     ::= { hh3cCfdTrapPrex 17 }

hh3cCfdRDIClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP received a CCM with RDI flag cleared."
     ::= { hh3cCfdTrapPrex 18 }

hh3cCfdExceptionMACStatusClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdMdIndex,
            hh3cCfdMdName,
            hh3cCfdMaIndex,
            hh3cCfdMaName,
            hh3cCfdMepId,
            hh3cCfdRMepId
        }
     STATUS       current
     DESCRIPTION
         "MEP received a CCM with the Port Status TLV or
         Interface Status TLV reporting an error status cleared"
     ::= { hh3cCfdTrapPrex 19 }

hh3cCfdSlmStatisticClear NOTIFICATION-TYPE
    OBJECTS
        {   hh3cCfdFrameEnd,
            hh3cCfdMepId,
            hh3cCfdSrvId,
            hh3cCfdStatisticThreshold
        }
     STATUS       current
     DESCRIPTION
         "The indexes in the one-way LM result fell blow the threshold."
     ::= { hh3cCfdTrapPrex 20 }

-- All objects used for TRAP only are defined here.
hh3cCfdTrapOjbects OBJECT IDENTIFIER ::= { hh3cCfdTrap 1 }

hh3cCfdMepId OBJECT-TYPE
    SYNTAX  Integer32(1..8191)
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The MEP ID."
    ::= { hh3cCfdTrapOjbects 1 }

hh3cCfdSrvId OBJECT-TYPE
    SYNTAX  Integer32(1..32767)
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The service instance ID."
    ::= { hh3cCfdTrapOjbects 2 }

hh3cCfdTimeThreshold OBJECT-TYPE
    SYNTAX  Integer32
    UNITS "microseconds"
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The delay time threshold."
    ::= { hh3cCfdTrapOjbects 3 }

hh3cCfdFrameEnd OBJECT-TYPE
    SYNTAX  INTEGER {
            nearEnd(1),
            farEnd(2)
     }
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The loose frame end of MEP.
        nearEnd: loose frame on source MEP.
        farEnd: loose frame on target MEP."
    ::= { hh3cCfdTrapOjbects 4 }

hh3cCfdStatisticThreshold OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..8))
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The packet frame threshold in percentage, in the range of 0 to 100.
        It can contain a maximum of 8 digits, including the dot (.),
        for example, 1.000001."
    ::= { hh3cCfdTrapOjbects 5 }

hh3cCfdMdIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The index of the maintenance domain."
    ::= { hh3cCfdTrapOjbects 6 }

hh3cCfdMdName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..43))
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The maintenance domain name."
    ::= { hh3cCfdTrapOjbects 7 }

hh3cCfdMaIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The index of the maintenance association."
    ::= { hh3cCfdTrapOjbects 8 }

hh3cCfdMaName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..45))
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "The Maintenance association name."
    ::= { hh3cCfdTrapOjbects 9 }

hh3cCfdRMepId OBJECT-TYPE
    SYNTAX      Unsigned32 (1..8191)
    MAX-ACCESS   accessible-for-notify
    STATUS       current
    DESCRIPTION
        "Maintenance association end point identifier of a remote MEP."
    ::= { hh3cCfdTrapOjbects 10 }
END
