    IPI-CMM-CERAGON-MIB DEFINITIONS ::= BEGIN

    --  This module provides authoritative definitions for Ceragon specific modules
    --
    --  This module will be extended, as needed.
    --

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY,
        Gauge32, Counter32, Unsigned32,
        TimeTicks, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
        DateAndTime, DisplayString,
        MacAddress, RowStatus, TEXTUAL-CONVENTION
            FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
            FROM SNMPv2-CONF
        enterprises,OBJECT-IDENTITY
            FROM SNMPv2-SMI
      ipi FROM IPI-MODULE-MIB
      cmmChassisObject,
      cmmStackUnitIndex FROM IPI-CMM-CHASSIS-MIB;

   cmm  MODULE-IDENTITY
   LAST-UPDATED "202112160000Z"   -- 2021 Dec 16, 12:00:00 GMT
   ORGANIZATION "IP Infusion"
   CONTACT-INFO "support@ipinfusion.com"

   DESCRIPTION
      "The Structure of CMM Management Information for
       the IPI enterprise."
   REVISION "202112160000Z"
   DESCRIPTION
      "Complying to level 3 of SMILINT"
   ::= { ipi 100 }


    -- ### Groups ###

    cmmPoePortStatusObjects      OBJECT IDENTIFIER ::={ cmmChassisObject 17 }
    cmmCpldStatusObjects         OBJECT IDENTIFIER ::={ cmmChassisObject 18 }
    cmmCpldAlarmNotifications    OBJECT IDENTIFIER ::={ cmmChassisObject 19 }

    cmmPoePortStatusTable     OBJECT-TYPE
      SYNTAX            SEQUENCE OF CmmPoePortStatusTableEntry
      MAX-ACCESS        not-accessible
      STATUS            current
      DESCRIPTION
        "A list of entries containing poe port information."
        ::= { cmmPoePortStatusObjects 1 }

    cmmPoePortStatusTableEntry OBJECT-TYPE
      SYNTAX         CmmPoePortStatusTableEntry
      MAX-ACCESS        not-accessible
      STATUS            current
      DESCRIPTION
        "A list of table entries containing poe port information."
      INDEX    { cmmStackUnitIndex,cmmPoePortIndex }
        ::= { cmmPoePortStatusTable 1 }

    CmmPoePortStatusTableEntry   ::=
       SEQUENCE {
         cmmPoePortIndex        INTEGER,
         cmmPoePortName         DisplayString,
         cmmPoePortstatus       INTEGER
       }

    cmmPoePortIndex OBJECT-TYPE
       SYNTAX        INTEGER (1..128)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
         "Port index number."
       ::= { cmmPoePortStatusTableEntry 1 }

    cmmPoePortName OBJECT-TYPE
       SYNTAX          DisplayString
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
       "Port name."
       ::= { cmmPoePortStatusTableEntry 2 }

    cmmPoePortstatus OBJECT-TYPE
       SYNTAX          INTEGER {
                         enable(1),
                         disable(2),
                         unavailable(-100001),
                         not-applicable(-100002)
                       }
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
       "Port status."
       ::= { cmmPoePortStatusTableEntry 3 }

    cmmCpldStatusTable OBJECT-TYPE
      SYNTAX            SEQUENCE OF CmmCpldStatusTableEntry
      MAX-ACCESS        not-accessible
      STATUS            current
      DESCRIPTION
        "A list of entries containing various status information from CPLD."
        ::= { cmmCpldStatusObjects 1 }

    cmmCpldStatusTableEntry OBJECT-TYPE
      SYNTAX         CmmCpldStatusTableEntry
      MAX-ACCESS     not-accessible
      STATUS         current
      DESCRIPTION
        "A list of entries containing various status information from CPLD"
      INDEX    { cmmStackUnitIndex }
        ::= { cmmCpldStatusTable 1}

    CmmCpldStatusTableEntry     ::=
      SEQUENCE {
        cmmCluLossOfInputClockStatus   INTEGER,
        cmmUsbOverCurrentStatus        INTEGER
      }

    cmmCluLossOfInputClockStatus OBJECT-TYPE
      SYNTAX         INTEGER {
                      active(1),
                      inactive(2),
                      unavailable(-100001),
                      not-applicable(-100002)
                    }
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
        "CLU loss of input clock"
        ::= { cmmCpldStatusTableEntry 1 }

    cmmUsbOverCurrentStatus OBJECT-TYPE
      SYNTAX         INTEGER {
                       active(1),
                       inactive(2),
                       unavailable(-100001),
                       not-applicable(-100002)
                    }
      MAX-ACCESS      read-only
      STATUS         current
      DESCRIPTION
         "USB over current information"
         ::= { cmmCpldStatusTableEntry 2 }

    cmmCluLossOfInputClockStateNotify   NOTIFICATION-TYPE
      OBJECTS     {
                   cmmStackUnitIndex,
                   cmmCluLossOfInputClockStatus
                  }
      STATUS       current
      DESCRIPTION
        "Notified when CLU loss of input clock is detected."
        ::= { cmmCpldAlarmNotifications 1 }

    cmmUsbOverCurrentStateNotify   NOTIFICATION-TYPE
      OBJECTS     {
                   cmmStackUnitIndex,
                   cmmUsbOverCurrentStatus
                  }
      STATUS       current
      DESCRIPTION
        "Notified when USB over current is detected."
        ::= { cmmCpldAlarmNotifications 2 }

END
