-- =========================================================================
-- Copyright (c) 2004-2021 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  SIB MIB
-- Reference:  Enterprise MIB
-- Version: V1.0
-- History:
--     V1.0 Initial version 2021-04-12
-- =========================================================================
HH3C-SIB-MIB DEFINITIONS ::= BEGIN

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

hh3cSib MODULE-IDENTITY
    LAST-UPDATED "202104120000Z"        -- April 12, 2021 at 00:00 GMT
    ORGANIZATION
        "New H3C Tech. 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
        "This module defines the objects pertaining to share interface bridge(SIB)."
    REVISION  "202104120000Z"        -- April 12, 2021 at 00:00 GMT
    DESCRIPTION "Initial version."
    ::= { hh3cCommon 204 }

hh3cSibNotifications   OBJECT IDENTIFIER ::= { hh3cSib 0 }
hh3cSibObjects         OBJECT IDENTIFIER ::= { hh3cSib 1 }
hh3cSibTables          OBJECT IDENTIFIER ::= { hh3cSib 2 }
-- ----------------------------------------------------------------------
  -- Throughput statistic table
-- ----------------------------------------------------------------------
hh3cSibThroughputTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Hh3cSibThroughputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Throughput statistics."
    ::= { hh3cSibTables 1 }

hh3cSibThroughputEntry OBJECT-TYPE
    SYNTAX  Hh3cSibThroughputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "An entry (conceptual row) representing throughput statistics."
    INDEX { hh3cSibThroughputChassis, hh3cSibThroughputSlot, hh3cSibThroughputCPUID }
    ::= { hh3cSibThroughputTable 1 }

Hh3cSibThroughputEntry ::= SEQUENCE {
    hh3cSibThroughputChassis          Unsigned32,
    hh3cSibThroughputSlot             Unsigned32,
    hh3cSibThroughputCPUID            Unsigned32,
    hh3cSibThroughputDropNum          Counter64,
    hh3cSibRealThroughput             Unsigned32,
    hh3cSibRealThruputUsage           Unsigned32
    }

hh3cSibThroughputChassis   OBJECT-TYPE
    SYNTAX Unsigned32(0..65534)
    MAX-ACCESS  accessible-for-notify
    STATUS  current
    DESCRIPTION
        "Chassis number."
    ::= { hh3cSibThroughputEntry  1 }

hh3cSibThroughputSlot    OBJECT-TYPE
    SYNTAX Unsigned32(0..65534)
    MAX-ACCESS  accessible-for-notify
    STATUS  current
    DESCRIPTION
        "Slot number."
    ::= { hh3cSibThroughputEntry  2 }

hh3cSibThroughputCPUID   OBJECT-TYPE
    SYNTAX Unsigned32(0..7)
    MAX-ACCESS  accessible-for-notify
    STATUS  current
    DESCRIPTION
        "CPU ID."
    ::= { hh3cSibThroughputEntry  3 }

hh3cSibThroughputDropNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets dropped because of throughput capability limits on the context."
    ::= { hh3cSibThroughputEntry 4 }

hh3cSibRealThroughput OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Current throughput on the context."
    ::= { hh3cSibThroughputEntry 5 }

hh3cSibRealThruputUsage OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Percentage of the current throughput to the maximum throughput."
    ::= { hh3cSibThroughputEntry 6 }

hh3cSibThroughputObjects  OBJECT IDENTIFIER ::= { hh3cSibObjects 1 }

hh3cSibSetThroughput OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Maximum throughput allowed on the context."
    ::= { hh3cSibThroughputObjects 1 }

hh3cSibSetThreshold OBJECT-TYPE
    SYNTAX      Unsigned32(0..99)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Throughput usage threshold."
    ::= { hh3cSibThroughputObjects 2 }

hh3cSibThroughputUnit OBJECT-TYPE
    SYNTAX      INTEGER {invalid(0),kbps(1),pps(2)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Throughput unit. Value 1 represents kbps and value 2 represents pps."
    ::= { hh3cSibThroughputObjects 3 }

-- ==================================================================
--
-- ======================= trap definition begin ====================
--
-- ==================================================================
hh3cSibDropTrap NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cSibThroughputChassis,
            hh3cSibThroughputSlot,
            hh3cSibThroughputCPUID,
            hh3cSibThroughputDropNum
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when the throughput of the context reaches the limit."
    ::= { hh3cSibNotifications 1 }

hh3cSibDropRecoveryTrap NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cSibThroughputChassis,
            hh3cSibThroughputSlot,
            hh3cSibThroughputCPUID
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when the packet drop conditions are cleared because the throughput of the context drops."
    ::= { hh3cSibNotifications 2 }

hh3cSibThresholdTrap NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cSibThroughputChassis,
            hh3cSibThroughputSlot,
            hh3cSibThroughputCPUID,
            hh3cSibSetThroughput,
            hh3cSibRealThroughput,
            hh3cSibSetThreshold,
            hh3cSibRealThruputUsage
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when the throughput usage of the context reaches the threshold."
    ::= { hh3cSibNotifications 3 }

hh3cSibThrRevoveryTrap NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cSibThroughputChassis,
            hh3cSibThroughputSlot,
            hh3cSibThroughputCPUID,
            hh3cSibSetThroughput,
            hh3cSibRealThroughput,
            hh3cSibSetThreshold,
            hh3cSibRealThruputUsage
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when the throughput usage of the context drops below the threshold."
    ::= { hh3cSibNotifications 4 }
END
