--  =======================================================================
--  File        : oaqos.mib
--  Description : Private MIB for Optical Access Device
--  By          : Sharon Yakov, Yakov Vaisman.
--  Version     : $Revision:   1.0
--  Date        : $Date:   November 17, 2000
--  =======================================================================
--
--
-- Copyright (c) 2000 Optical Access.  All Rights Reserved.
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This NBase SNMP MIB Specification
-- embodies Optical Access's proprietary intellectual property.  NBase
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is Optical Access's intent to encourage the widespread use of this
-- specification in connection with the management of Optical Access's
-- products. Optical Access grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of Optical Access's products.
--
-- This specification is supplied "AS IS," and Optical Access makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Optical Access retains the right to change this MIB without notification.
--
OA-QOS-MIB DEFINITIONS ::= BEGIN

	 IMPORTS
		enterprises,
                IpAddress                     FROM RFC1155-SMI

		OBJECT-TYPE                   FROM RFC-1212
		DisplayString                 FROM RFC1213-MIB;

-- ************************************************************
-- NBase Object Identifier Definition
-- ************************************************************

oaccess			OBJECT IDENTIFIER ::= { enterprises 6926 }
oaManagement		OBJECT IDENTIFIER ::= { oaccess 1 }

oaClassification	OBJECT IDENTIFIER ::= { oaManagement 21}
oaQoS			OBJECT IDENTIFIER ::= { oaClassification 2}

-- *************************************************************
-- Objects in the General Group
-- *************************************************************

	 oaQoSSaveMode			OBJECT-TYPE
	 SYNTAX    INTEGER{
			other		(1),
			allQoSParams    (2)
			}
	 ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "Save whole QoS feature Configuration
		  in the NVRAM for the corresponding Device.
		  In case of GET command - always responds with 1=other.
		  In case of SET command - always needs 2=allQoSParams."
		 ::= { oaQoS 1 }

	 oaQoSMaxPriorQueuesNumber	OBJECT-TYPE
         SYNTAX    INTEGER
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Max number of priority queues in the whole Device."
		 ::= { oaQoS 2 }

-- *************************************************************
-- Objects in the Module Configuration Group
-- *************************************************************

 	 oaQoSModuleStatusTable OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSModuleStatusEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of QoS Status in Modules."
		 ::= { oaQoS 3 }

	 oaQoSModuleStatusEntry OBJECT-TYPE
	 SYNTAX    OaQoSModuleStatusEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the QoS Status in Module."
	 INDEX   { oaQoSSlotId, oaQoSModuleId }
		 ::= { oaQoSModuleStatusTable 1 }

	 OaQoSModuleStatusEntry ::=
	 SEQUENCE   {
		     oaQoSSlotId	INTEGER,
		     oaQoSModuleId	INTEGER,
		     oaQoSModuleStatus	INTEGER
		    }

	 oaQoSSlotId			OBJECT-TYPE
         SYNTAX    INTEGER
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "The Slot Index in the Device."
		 ::= { oaQoSModuleStatusEntry 1 }

	 oaQoSModuleId			OBJECT-TYPE
         SYNTAX    INTEGER
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 " The Module Index in the Slot."
		 ::= { oaQoSModuleStatusEntry 2 }

	 oaQoSModuleStatus		OBJECT-TYPE
	 SYNTAX    INTEGER {
			other		(1),
			supported	(2),
			notSupported	(3)
			}
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Status of the QoS feature in corresponding Module.
		  In case of 1=other        - module is in the other mode.
		  In case of 2=supported    - feature is supported.
		  In case of 3=notSupported - feature is not supported."
		 ::= { oaQoSModuleStatusEntry 3 }

-- *************************************************************
-- 'oaQoS' Groups from 4 up to 20 are reserved !!!
-- *************************************************************

	 oaQoSRun		OBJECT IDENTIFIER ::= { oaQoS 10}
	 oaQoSPerm		OBJECT IDENTIFIER ::= { oaQoS 11}

-- *************************************************************
-- 'oaQoS' Run Data Base Groups
-- *************************************************************

	 oaQoSCounterMode	OBJECT-TYPE
	 SYNTAX    INTEGER {
			other		(1),
			perPackets	(2),
			perOctets	(3)
			}
	 ACCESS    read-write
	 STATUS    mandatory
         DESCRIPTION
		 "Counter Type mode.
		 Setting this object to the value perPackets(2) causes packet accounting.
		 Setting this object to the value perOctets(3) causes octet accounting."
		 ::= { oaQoSRun 1 }

	 oaQoSTxSchedAlg	OBJECT-TYPE
	 SYNTAX    INTEGER {
			other		(1),
			wrr		(2),
			hybrid1sp3wrr	(3),
			hybrid2sp2wrr	(4),
			sp		(5)
			}
         ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "Tx priority queue scheduling Algorithm.
		  Setting this object to the value WRR(2) causes 
		  Waited-Round-Robin scheduling algorithm.
		  Setting this object to the value Hybrid(1/3)(3) causes 
		  Strict-Priority scheduling algorithm for the first priority queue,
		  The other priority queues are scheduled by Waited-Round-Robin 
		  scheduling algorithm.
		  Setting this object to the value Hybrid(2/2)(4) causes 
		  Strict-Priority scheduling algorithm for the first two priority queues,
		  The other priority queues are scheduled by Waited-Round-Robin 
		  scheduling algorithm.
		  Setting this object to the value SP(5) causes 
		  Strict-Priority scheduling algorithm for all of the priority queues."
		 ::= { oaQoSRun 2 }
       
-- *************************************************************
-- 'oaQoSRun' Data Base Groups 3 - 5 are Reserved !!!
-- *************************************************************

-- *************************************************************
-- Objects in the Run Data Base QoS Queue Parameters Group
-- *************************************************************
	 
	 oaQoSQParamsTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSQParamsEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of Priority Queue Parameters in the Device
		  in the QoS feature."
		 ::= { oaQoSRun 6 }

	 oaQoSQParamsEntry	OBJECT-TYPE
	 SYNTAX    OaQoSQParamsEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the Priority Queue Parameters in the Device
		  in the QoS feature."
	 INDEX   { oaQoSQParamsQueueNumber }
		 ::= { oaQoSQParamsTable 1 }

	 OaQoSQParamsEntry ::=
	 SEQUENCE   {
		     oaQoSQParamsQueueNumber	INTEGER,
		     oaQoSQParamsQueueWeight	INTEGER
		    }

	 oaQoSQParamsQueueNumber	OBJECT-TYPE
	 SYNTAX    INTEGER
	 ACCESS    read-only
	 STATUS    mandatory
         DESCRIPTION
		 "Priority Queue Number."
		 ::= { oaQoSQParamsEntry 1 }

	 oaQoSQParamsQueueWeight	OBJECT-TYPE
	 SYNTAX    INTEGER    (0..255)
         ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "Weight value for the specific Priority Queue."
		 ::= { oaQoSQParamsEntry 2 }
       
-- *************************************************************
-- 'oaQoSRun' Data Base Groups 7 - 8 are Reserved !!!
-- *************************************************************

-- *************************************************************
-- Objects in the Run Data Base QoS TOS Configuration Group
-- *************************************************************
        
	 oaQoSTOSCfgTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSTOSCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of TOS values used in the QoS Configuration.
		  It represents the Service Level to TOS bits mapping."
		 ::= { oaQoSRun 9 }

	 oaQoSTOSCfgEntry	OBJECT-TYPE
	 SYNTAX    OaQoSTOSCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about Service Level to TOS bits mapping in QoS."
	 INDEX   { oaQoSTOSServiceLevel }
		 ::= { oaQoSTOSCfgTable 1 }

	 OaQoSTOSCfgEntry ::=
	 SEQUENCE   {
		     oaQoSTOSServiceLevel	INTEGER,
		     oaQoSTOSvalue		INTEGER,
		     oaQoSTOSvalueAfterReset	INTEGER,
		     oaQoSTOSvalueDefault	INTEGER
		    }

	 oaQoSTOSServiceLevel	OBJECT-TYPE
         SYNTAX    INTEGER (1..8)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Service Level"
		 ::= { oaQoSTOSCfgEntry 1 }

	 oaQoSTOSvalue	OBJECT-TYPE
	 SYNTAX    INTEGER (0..63)
	 ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "6 most significant bits of the TOS value.
		  Note, that 2 least significant bits of
		  the TOS value are not in Use."
		 ::= { oaQoSTOSCfgEntry 2 }

	 oaQoSTOSvalueAfterReset	OBJECT-TYPE
	 SYNTAX    INTEGER (0..63)
	 ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "6 most significant bits of the TOS value that will be SET to
		  the [oaQoSTOSvalue] and [oaQoSPermTOSvalue] Objects only
		  after Reset Device procedure if before that User creates
		  'Save whole QoS feature Configuration' command -
		  [oaQoSSaveMode]=(2).
		  Note, that 2 least significant bits of
		  the TOS value are not in Use."
		 ::= { oaQoSTOSCfgEntry 3 }

	 oaQoSTOSvalueDefault	OBJECT-TYPE
	 SYNTAX    INTEGER (0..63)
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "The default value of the 6 most significant bits
		  of the TOS field, as proposed by QoS
		  Assured Forwarding Standard.
		  Note, that 2 least significant bits of
		  the TOS value are not in Use."

		 ::= { oaQoSTOSCfgEntry 4 }

-- *************************************************************
-- Objects in the Run Data Base QoS VPT Configuration Group
-- *************************************************************
        
	 oaQoSVPTCfgTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSVPTCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of VPT values used in the QoS Configuration.
		  It represents the Service Level to VPT bits mapping."
		 ::= { oaQoSRun 10 }

	 oaQoSVPTCfgEntry	OBJECT-TYPE
	 SYNTAX    OaQoSVPTCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about Service Level to VPT bits mapping in QoS."
	 INDEX   { oaQoSVPTServiceLevel }
		 ::= { oaQoSVPTCfgTable 1 }

	 OaQoSVPTCfgEntry ::=
	 SEQUENCE   {
		     oaQoSVPTServiceLevel	INTEGER,
		     oaQoSVPTvalue		INTEGER,
		     oaQoSVPTvalueAfterReset	INTEGER,
		     oaQoSVPTvalueDefault	INTEGER
		    }

	 oaQoSVPTServiceLevel	OBJECT-TYPE
	 SYNTAX    INTEGER (1..8)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Service Level"
		 ::= { oaQoSVPTCfgEntry 1 }

	 oaQoSVPTvalue	OBJECT-TYPE
	 SYNTAX    INTEGER (0..7)
	 ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "VPT bits value."
		 ::= { oaQoSVPTCfgEntry 2 }

	 oaQoSVPTvalueAfterReset	OBJECT-TYPE
	 SYNTAX    INTEGER (0..7)
	 ACCESS    read-write
         STATUS    mandatory
         DESCRIPTION
		 "VPT bits value that will be SET to
		  the [oaQoSVPTvalue] and [oaQoSPermVPTvalue] Objects only
		  after Reset Device procedure if before that User creates
		  'Save whole QoS feature Configuration' command -
		  [oaQoSSaveMode]=(2)."
		 ::= { oaQoSVPTCfgEntry 3 }

	 oaQoSVPTvalueDefault	OBJECT-TYPE
	 SYNTAX    INTEGER (0..7)
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "The default value of the VPT field, 
		 as proposed by QoS Assured Forwarding Standard."
		 ::= { oaQoSVPTCfgEntry 4 }
-- *************************************************************
-- 'oaQoS' Perm Data Base Groups
-- *************************************************************

	 oaQoSPermCounterMode	OBJECT-TYPE
	 SYNTAX    INTEGER {
			other		(1),
			perPackets	(2),
			perOctets	(3)
			}
	 ACCESS    read-only
	 STATUS    mandatory
         DESCRIPTION
		 "Counter Type mode.
		 Setting this object to the value perPackets(2) causes packet accounting.
		 Setting this object to the value perOctets(3) causes octet accounting."
		 ::= { oaQoSPerm 1 }

	 oaQoSPermTxSchedAlg	OBJECT-TYPE
	 SYNTAX    INTEGER {
			other		(1),
			wrr		(2),
			hybrid1sp3wrr	(3),
			hybrid2sp2wrr	(4),
			sp		(5)
			}
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Tx priority queue scheduling Algorithm.
		  Setting this object to the value WRR(2) causes 
		  Waited-Round-Robin scheduling algorithm.
		  Setting this object to the value Hybrid(1/3)(3) causes 
		  Strict-Priority scheduling algorithm for the first priority queue,
		  The other priority queues are scheduled by Waited-Round-Robin 
		  scheduling algorithm.
		  Setting this object to the value Hybrid(2/2)(4) causes 
		  Strict-Priority scheduling algorithm for the first two priority queues,
		  The other priority queues are scheduled by Waited-Round-Robin 
		  scheduling algorithm.
		  Setting this object to the value SP(5) causes 
		  Strict-Priority scheduling algorithm for all of the priority queues."
		 ::= { oaQoSPerm 2 }
       
-- *************************************************************
-- 'oaQoSPerm' Data Base Groups 3 - 5 are Reserved !!!
-- *************************************************************

-- *************************************************************
-- Objects in the Perm Data Base QoS Queue Parameters Group
-- *************************************************************
	 
	 oaQoSPermQParamsTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSPermQParamsEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of Priority Queue Parameters in the Device
		  in the QoS feature."
		 ::= { oaQoSPerm 6 }

	 oaQoSPermQParamsEntry	OBJECT-TYPE
	 SYNTAX    OaQoSPermQParamsEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the Priority Queue Parameters in the Device
		  in the QoS feature."
	 INDEX   { oaQoSPermQParamsQueueNumber }
		 ::= { oaQoSPermQParamsTable 1 }

	 OaQoSPermQParamsEntry ::=
	 SEQUENCE   {
		     oaQoSPermQParamsQueueNumber	INTEGER,
		     oaQoSPermQParamsQueueWeight	INTEGER
		    }

	 oaQoSPermQParamsQueueNumber	OBJECT-TYPE
	 SYNTAX    INTEGER
	 ACCESS    read-only
	 STATUS    mandatory
         DESCRIPTION
		 "Priority Queue Number."
		 ::= { oaQoSPermQParamsEntry 1 }

	 oaQoSPermQParamsQueueWeight	OBJECT-TYPE
	 SYNTAX    INTEGER    (0..255)
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Weight value for the specific Priority Queue."
		 ::= { oaQoSPermQParamsEntry 2 }
       
-- *************************************************************
-- 'oaQoSPerm' Data Base Groups 7 - 8 are Reserved !!!
-- *************************************************************

-- *************************************************************
-- Objects in the Perm Data Base QoS TOS Configuration Group
-- *************************************************************
        
	 oaQoSPermTOSCfgTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSPermTOSCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of TOS values used in the QoS Configuration.
		  It represents the Service Level to TOS bits mapping."
		 ::= { oaQoSPerm 9 }

	 oaQoSPermTOSCfgEntry	OBJECT-TYPE
	 SYNTAX    OaQoSPermTOSCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about Service Level to TOS bits mapping in QoS."
	 INDEX   { oaQoSPermTOSServiceLevel }
		 ::= { oaQoSPermTOSCfgTable 1 }

	 OaQoSPermTOSCfgEntry ::=
	 SEQUENCE   {
		     oaQoSPermTOSServiceLevel	INTEGER,
		     oaQoSPermTOSvalue		INTEGER
		    }

	 oaQoSPermTOSServiceLevel	OBJECT-TYPE
         SYNTAX    INTEGER (1..8)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Service Level"
		 ::= { oaQoSPermTOSCfgEntry 1 }

	 oaQoSPermTOSvalue	OBJECT-TYPE
	 SYNTAX    INTEGER (0..63)
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "6 most significant bits of the TOS value.
		  Note, that 2 least significant bits of
		  the TOS value are not in Use."

		 ::= { oaQoSPermTOSCfgEntry 2 }

-- *************************************************************
-- Objects in the Perm Data Base QoS VPT Configuration Group
-- *************************************************************
        
	 oaQoSPermVPTCfgTable	OBJECT-TYPE
	 SYNTAX    SEQUENCE OF OaQoSPermVPTCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of VPT values used in the QoS Configuration.
		  It represents the Service Level to VPT bits mapping."
		 ::= { oaQoSPerm 10 }

	 oaQoSPermVPTCfgEntry	OBJECT-TYPE
	 SYNTAX    OaQoSPermVPTCfgEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about Service Level to VPT bits mapping in QoS."
	 INDEX   { oaQoSPermVPTServiceLevel }
		 ::= { oaQoSPermVPTCfgTable 1 }

	 OaQoSPermVPTCfgEntry ::=
	 SEQUENCE   {
		     oaQoSPermVPTServiceLevel	INTEGER,
		     oaQoSPermVPTvalue		INTEGER
		    }

	 oaQoSPermVPTServiceLevel	OBJECT-TYPE
	 SYNTAX    INTEGER (1..8)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "Service Level."
		 ::= { oaQoSPermVPTCfgEntry 1 }

	 oaQoSPermVPTvalue	OBJECT-TYPE
	 SYNTAX    INTEGER (0..7)
	 ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 "VPT bits value."
		 ::= { oaQoSPermVPTCfgEntry 2 }

-- *************************************************************

END
