--  =======================================================================
--  File        : tcgroup.mib
--  Description : Private MIB for Linux Router
--  By          : Alex & Yakov
--  Supports groups of traffic conditioner counters,
--  is parallel to cli command 'tc-counters-group'

-- Copyright (c) 2005 MRV.  All Rights Reserved.
--
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This MRV SNMP MIB Specification
-- embodies MRV's proprietary intellectual property.  MRV
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is MRV's intent to encourage the widespread use of this
-- specification in connection with the management of MRV's
-- products. MRV grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of MRV's products.
--
-- This specification is supplied "AS IS," and MRV makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Copyright text courtesy of MRV
--
-- If you have any questions about this MIB, please call MRV
-- Technical Support Center at 1-800-858-7815 from inside USA or
-- 1-818-773-0900 from outside USA.
--
--
-- MRV retains the right to change this MIB without notification.

TC-GROUPS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Counter64, enterprises, Integer32    FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, DisplayString    FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
--  nbRouterConfig                       FROM RT-CFG-MIB
    SnmpAdminString                      FROM SNMP-FRAMEWORK-MIB; -- RFC2571



nbTcGroups  MODULE-IDENTITY 
    LAST-UPDATED "200601120000Z"
    ORGANIZATION "MRV Communications, Inc."
    CONTACT-INFO
        "Alex Rozin
         MRV Communication, Inc
         http://www.mrv.com
         Email:  ARozin@mrv.com"
    DESCRIPTION
        "Traffic Conditioner Counters management."

    -- Revision history

    REVISION "200601120000Z"
    DESCRIPTION
        "1. nbTcGrpSupport has been added.
         2. nbTcActCtrlTable & nbTcActReslTable
         3. 'smilib' tested."

    REVISION "200507070000Z"
    DESCRIPTION
        "Initial edition."
    ::= { nbRtActionLists 10 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************

nbase                  OBJECT IDENTIFIER ::= { enterprises 629 }
nbSwitchG1             OBJECT IDENTIFIER ::= { nbase 1 }
nbSwitchG1Il           OBJECT IDENTIFIER ::= { nbSwitchG1 50}
nbRouterConfig         OBJECT IDENTIFIER ::= { nbSwitchG1Il 12}
nbRtActionLists        OBJECT IDENTIFIER ::= { nbRouterConfig 9 }

nbTcGrpSupport         OBJECT IDENTIFIER ::= { nbTcGroups 100 }
nbTcGrpConformance     OBJECT IDENTIFIER ::= { nbTcGroups 101 } 

-- ************************************************************
-- Textual Conventions
-- ************************************************************

SupportValue   ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "Represents a value, that reflects support of the feature
         on the Device." 
    SYNTAX       INTEGER {
                          notSupported  (1),
                          supported     (2)
                         }

EntryValidator ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "Status for controlling of the entry."
    SYNTAX       INTEGER {
                          valid    (1),
                          invalid  (2)
                         }

-- ActListStatus  ::= TEXTUAL-CONVENTION
--    STATUS       current
--    DESCRIPTION
--        "Current status of the action list."
--    SYNTAX       BITS {
--                       absent               (0),
--                       inactive             (1),
--                       hasMetering          (2),
--                       hasAggregatePackets  (3),
--                       hasAggregateOctets   (4)
--                      }

-- --------- nbTcGrpCntrTable ----------------

nbTcGrpCntrTable               OBJECT-TYPE
    SYNTAX       SEQUENCE OF NbTcGrpCntrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Control table for create/delete entries."

    ::= { nbTcGroups 1 }

nbTcGrpCntrEntry               OBJECT-TYPE
    SYNTAX       NbTcGrpCntrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "."

    INDEX {
           nbTcGroupCntrGrpName,
           nbTcGroupCntrActionName
          }

    ::= { nbTcGrpCntrTable 1 }

NbTcGrpCntrEntry ::= SEQUENCE {
                               nbTcGroupCntrGrpName       SnmpAdminString,
                               nbTcGroupCntrActionName    SnmpAdminString,
                               nbTcGroupCntrStatus        EntryValidator
                              }

nbTcGroupCntrGrpName           OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The human readable name for a group of TC counters."

    ::= { nbTcGrpCntrEntry 1 }

nbTcGroupCntrActionName        OBJECT-TYPE
    SYNTAX       SnmpAdminString  (SIZE(0..64))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The human readable name for an action list."

    ::= { nbTcGrpCntrEntry 2 }

nbTcGroupCntrStatus            OBJECT-TYPE
    SYNTAX       EntryValidator
    MAX-ACCESS   read-write
    STATUS       current       
    DESCRIPTION
        "Status for controlling of the entry."

    ::= { nbTcGrpCntrEntry 3 }

-- --------- nbTcGrpDscrTable ----------------

nbTcGrpDscrTable               OBJECT-TYPE
    SYNTAX       SEQUENCE OF NbTcGrpDscrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Table to manage (set/delete/obtain) descriptions of groups."

    ::= { nbTcGroups 2 }

nbTcGrpDscrEntry               OBJECT-TYPE
    SYNTAX       NbTcGrpDscrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "."

    INDEX { nbTcGroupDscrGrpName }

    ::= { nbTcGrpDscrTable 1 }

NbTcGrpDscrEntry ::= SEQUENCE {
                               nbTcGroupDscrGrpName       SnmpAdminString,
                               nbTcGroupDscrText          DisplayString
                              }

nbTcGroupDscrGrpName           OBJECT-TYPE
    SYNTAX       SnmpAdminString  (SIZE(0..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The human readable name for a group of TC counters."

    ::= { nbTcGrpDscrEntry 1 }

nbTcGroupDscrText              OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..80))
    MAX-ACCESS   read-write
    STATUS       current       
    DESCRIPTION
        "Description of the group."

    ::= { nbTcGrpDscrEntry 3 }

-- --------- nbTcGrpReslTable ----------------

nbTcGrpReslTable               OBJECT-TYPE
    SYNTAX       SEQUENCE OF NbTcGrpReslEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Counters and statuses of entries."

    ::= { nbTcGroups 3 }

nbTcGrpReslEntry               OBJECT-TYPE
    SYNTAX       NbTcGrpReslEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "."

    AUGMENTS { nbTcGrpCntrEntry }

    ::= { nbTcGrpReslTable 1 }

NbTcGrpReslEntry ::= SEQUENCE {
--                               nbTcGroupReslStatus              BITS,
                               nbTcGroupReslStatus              OCTET STRING,
                               nbTcGroupReslCnfrmncCntrSet      Integer32,
                               nbTcGroupReslMeteringGreens      Counter64,
                               nbTcGroupReslMeteringYellows     Counter64,
                               nbTcGroupReslMeteringReds        Counter64,
                               nbTcGroupReslAggrOctets          Counter64,
                               nbTcGroupReslAggrPackets         Counter64,
                               nbTcGroupReslConfGreenOctets     Counter64,
                               nbTcGroupReslConfGreenPackets    Counter64,
                               nbTcGroupReslConfYellowOctets    Counter64,
                               nbTcGroupReslConfYellowPackets   Counter64,
                               nbTcGroupReslConfRedOctets       Counter64,
                               nbTcGroupReslConfRedPackets      Counter64
                              }

nbTcGroupReslStatus            OBJECT-TYPE
    SYNTAX       OCTET STRING
--    SYNTAX       BITS {
--                       absent               (0),
--                       inactive             (1),
--                       hasMetering          (2),
--                       hasAggregatePackets  (3),
--                       hasAggregateOctets   (4)
--                      }
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Current status of the action list."

    ::= { nbTcGrpReslEntry 3 }

nbTcGroupReslCnfrmncCntrSet    OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of 'Conformance Counter Set'; value '0' means,
         that there is no assigned 'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 4 }

nbTcGroupReslMeteringGreens    OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Metering bytes with green conformance."

    ::= { nbTcGrpReslEntry 5 }

nbTcGroupReslMeteringYellows   OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Metering bytes with yellow conformance."

    ::= { nbTcGrpReslEntry 6 }

nbTcGroupReslMeteringReds      OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Metering bytes with red conformance."

    ::= { nbTcGrpReslEntry 7 }

nbTcGroupReslAggrOctets        OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Admitted bytes for flow aggregate."

    ::= { nbTcGrpReslEntry 9 }

nbTcGroupReslAggrPackets       OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Admitted packets for flow aggregate."

    ::= { nbTcGrpReslEntry 10 }

nbTcGroupReslConfGreenOctets   OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of bytes marked green in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 12 }

nbTcGroupReslConfGreenPackets  OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of packets marked green in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 13 }

nbTcGroupReslConfYellowOctets  OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of bytes marked yellow in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 14 }

nbTcGroupReslConfYellowPackets OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of packets marked yellow in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 15 }

nbTcGroupReslConfRedOctets     OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of bytes marked red in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 16 }

nbTcGroupReslConfRedPackets    OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Number of packets marked red in selected
         'Conformance Counter Set'."

    ::= { nbTcGrpReslEntry 17 }

-- --------- nbTcActCtrlTable ----------------

nbTcActCtrlTable               OBJECT-TYPE
    SYNTAX       SEQUENCE OF NbTcActCtrlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Control table for create/delete entries."

    ::= { nbTcGroups 9 }

nbTcActCtrlEntry               OBJECT-TYPE
    SYNTAX       NbTcActCtrlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "."

    INDEX { nbTcActName }

    ::= { nbTcActCtrlTable 1 }

NbTcActCtrlEntry ::= SEQUENCE {
                               nbTcActName         SnmpAdminString,
                               nbTcActStatus       EntryValidator
                              }

nbTcActName                    OBJECT-TYPE
    SYNTAX       SnmpAdminString (SIZE(0..64))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The human readable name for a Action List."

    ::= { nbTcActCtrlEntry 1 }

nbTcActStatus                  OBJECT-TYPE
    SYNTAX       EntryValidator
    MAX-ACCESS   read-write
    STATUS       current       
    DESCRIPTION
        "Status for controlling of the entry."

    ::= { nbTcActCtrlEntry 64 }

-- --------- nbTcActReslTable ----------------

nbTcActReslTable               OBJECT-TYPE
    SYNTAX       SEQUENCE OF NbTcActReslEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Control table for create/delete entries."

    ::= { nbTcGroups 10 }

nbTcActReslEntry               OBJECT-TYPE
    SYNTAX       NbTcActReslEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "."

    AUGMENTS { nbTcActCtrlEntry }

    ::= { nbTcActReslTable 1 }

NbTcActReslEntry ::= SEQUENCE {
                               nbTcActReslStatus   OCTET STRING
--                               nbTcActReslStatus   BITS
                              }

nbTcActReslStatus              OBJECT-TYPE
    SYNTAX       OCTET STRING
--    SYNTAX       BITS {
--                       absent               (0),
--                       inactive             (1),
--                       hasMetering          (2),
--                       hasAggregatePackets  (3),
--                       hasAggregateOctets   (4)
--                      }
    MAX-ACCESS   read-only
    STATUS       current       
    DESCRIPTION
        "Current status of the action list."

    ::= { nbTcActReslEntry 3 }

-- ************************************************************
-- The feature support reflector
-- ************************************************************

nbTcGrpSupportGroups           OBJECT-TYPE
    SYNTAX     SupportValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The device supports nbTcGrpCntrTable,
         nbTcGrpDscrTable & nbTcGrpReslTable."

    ::= { nbTcGrpSupport 2 }

nbTcGrpSupportLists            OBJECT-TYPE
    SYNTAX     SupportValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
    "The device supports nbTcActCtrlTable & nbTcActReslTable."

    ::= { nbTcGrpSupport 9 }

-- ******************************************************************* 
--  Conformance Information 
-- ******************************************************************* 

nbTcGrpMIBCompliances  OBJECT IDENTIFIER ::= { nbTcGrpConformance 1 } 
nbTcGrpMIBGroups       OBJECT IDENTIFIER ::= { nbTcGrpConformance 2 } 

nbTcGrpMIBCompliance MODULE-COMPLIANCE 
    STATUS current
    DESCRIPTION
        "The core compliance statement for all nbTcGer MIB implementations." 

    MODULE -- this module 
        MANDATORY-GROUPS { 
                          nbTcGrpSupportReflectors 
                         }
        GROUP nbTcGrpGroup
        DESCRIPTION 
        "Optional objects for grouping of Action Lists TC counters."

        GROUP nbTcActGroup
        DESCRIPTION 
        "Optional objects, Action Lists without grouping."

    ::= { nbTcGrpMIBCompliances 1 } 

-- ................................................................... 
-- Conformance Groups 
-- ................................................................... 
 
nbTcGrpSupportReflectors  OBJECT-GROUP 
    OBJECTS { 
             nbTcGrpSupportGroups, 
             nbTcGrpSupportLists 
            } 
    STATUS current 
    DESCRIPTION 
        "Mandatory Conformance group : represents a value, that
         reflects support of the feature on the Device."

    ::= { nbTcGrpMIBGroups 1 } 
 
nbTcGrpGroup  OBJECT-GROUP 
    OBJECTS { 
             nbTcGroupCntrStatus,
             nbTcGroupDscrText,
             nbTcGroupReslStatus,
             nbTcGroupReslCnfrmncCntrSet,
             nbTcGroupReslMeteringGreens,
             nbTcGroupReslMeteringYellows,
             nbTcGroupReslMeteringReds,
             nbTcGroupReslAggrOctets,
             nbTcGroupReslAggrPackets,
             nbTcGroupReslConfGreenOctets,
             nbTcGroupReslConfGreenPackets,
             nbTcGroupReslConfYellowOctets,
             nbTcGroupReslConfYellowPackets,
             nbTcGroupReslConfRedOctets,
             nbTcGroupReslConfRedPackets
            } 
    STATUS current 
    DESCRIPTION 
        "Optional objects for grouping of Action Lists TC counters."

    ::= { nbTcGrpMIBGroups 2 } 
 
nbTcActGroup  OBJECT-GROUP 
    OBJECTS { 
             nbTcActStatus,
             nbTcActReslStatus
            } 
    STATUS current 
    DESCRIPTION 
        "Optional objects, Action List without grouping."

    ::= { nbTcGrpMIBGroups 3 }

END
