-- extracted from draft-ietf-snmpconf-diffpolicy-01.txt -- at Fri Apr 14 07:06:58 2000 DIFFSERV-POLICY-MIB DEFINITIONS ::= BEGIN IMPORTS Unsigned32, Counter32, Counter64, OBJECT-TYPE, MODULE-IDENTITY, zeroDotZero, mib-2 FROM SNMPv2-SMI TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF ifIndex FROM IF-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB InetAddressType, InetAddress FROM INET-ADDRESS-MIB SixTupleClfrL4Port, Dscp FROM DIFF-SERV-MIB; diffPolicyMib MODULE-IDENTITY LAST-UPDATED "200004041200Z" -- Tue Apr 4 09:00:00 MET 2000 ORGANIZATION "SNMPCONF WG" CONTACT-INFO "SNMPCONF Working Group http://www.ietf.org/html.charters/snmpconf-charter.html Editors: Harrie Hazewinkel Postal: Titanstraat 2 9933 CE Delfzijl The Netherlands Tel: +31 596 615843 or +39 331974135 FAX: +39 0331974135 E-mail: harrie.hazewinkel@bigfoot.com David Partain Postal: Ericsson Radio Systems P.O. Box 1248 SE-581 12 Linkoping Sweden Tel: +46 13 28 41 44 E-mail: David.Partain@ericsson.com" DESCRIPTION "The MIB module containing differentiated services specific managed objects to perform policy-based configuration management. This MIB defines 'templates' to be used to instantiate per-hop-behaviors to be assigned when a a policy is created and activated." ::= { mib-2 XXXX } -- Needs to be assigned by IANA -- -- HARRIE: Do we want separation between objects and tables?? -- HARRIE says: NO, but took the scheme over from the DIFF-SERV-MIB. -- diffPolicyObjects OBJECT IDENTIFIER ::= { diffPolicyMib 1 } diffPolicyTables OBJECT IDENTIFIER ::= { diffPolicyMib 2 } diffPolicyMIBConformance OBJECT IDENTIFIER ::= { diffPolicyMib 3 } -- -- Textual conventions -- -- -- The per-hop-behavior -- -- Issues: -- Do we want a spin-lock on this whole table or on each row -- of the table, or not at all? -- Do we want to have a time stamp on the row so that we -- know when the table was changed? -- Do we want to have an owner of each row? diffPolicyPerHopBehaviorTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffPolicyPerHopBehaviorEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table which defines the various per-hop-behaviors for which the system has default 'templates'." ::= { diffPolicyTables 1 } diffPolicyPerHopBehaviorEntry OBJECT-TYPE SYNTAX DiffPolicyPerHopBehaviorEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The per-hop-behavior entry." INDEX { diffPolicyPerHopBehaviorId } ::= { diffPolicyPerHopBehaviorTable 1 } DiffPolicyPerHopBehaviorEntry ::= SEQUENCE { diffPolicyPerHopBehaviorId INTEGER, diffPolicyPerHopBehaviorDescr SnmpAdminString, diffPolicyPerHopBehaviorTrafficIdentification RowPointer, diffPolicyPerHopBehaviorInterfaceDirection INTEGER, diffPolicyPerHopBehaviorClassificationPrecedence Unsigned32, diffPolicyPerHopBehaviorMeter RowPointer, diffPolicyPerHopBehaviorAction RowPointer, diffPolicyPerHopBehaviorQset RowPointer, diffPolicyPerHopBehaviorStatus RowStatus } diffPolicyPerHopBehaviorId OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique id for the per-hop-behavior." ::= { diffPolicyPerHopBehaviorEntry 1 } diffPolicyPerHopBehaviorDescr OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "A human-readable description to identify this defined per-hop-behavior. Note that this is an SnmpAdminString, which permits strings other than NVT ASCII." ::= { diffPolicyPerHopBehaviorEntry 2 } diffPolicyPerHopBehaviorTrafficIdentification OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The pointer to traffic identification used for this per-hop-behavior definition." ::= { diffPolicyPerHopBehaviorEntry 3 } diffPolicyPerHopBehaviorInterfaceDirection OBJECT-TYPE SYNTAX INTEGER { inbound(1), -- ingress interface outbound(2) -- egress interface } MAX-ACCESS read-create STATUS current DESCRIPTION "The interface direction of this defined per-hop-behavior definition." ::= { diffPolicyPerHopBehaviorEntry 4 } diffPolicyPerHopBehaviorClassificationPrecedence OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "The precedence of the classifier for this per-hop-behavior definition." ::= { diffPolicyPerHopBehaviorEntry 5 } diffPolicyPerHopBehaviorMeter OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The meter which is next in the data path for the defined classifier applicable to this per-hop-behavior definition." DEFVAL { 0 } ::= { diffPolicyPerHopBehaviorEntry 6 } diffPolicyPerHopBehaviorAction OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The action which is next in the data path for the defined classifier applicable to this per-hop-behavior definition." DEFVAL { zeroDotZero } ::= { diffPolicyPerHopBehaviorEntry 7 } diffPolicyPerHopBehaviorQset OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The Qset which is next in the data path for the defined classifier applicable to this per-hop-behavior definition." DEFVAL { zeroDotZero } ::= { diffPolicyPerHopBehaviorEntry 8 } diffPolicyPerHopBehaviorStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "RowStatus object used for creation and deletion of rows in this table." ::= { diffPolicyPerHopBehaviorEntry 9 } -- -- Meters Configuration -- -- Issues, which are the same as on the previous table: -- Do we want a spin-lock on this whole table or on each row -- of the table, or not at all? -- Do we want to have a time stamp on the row so that we -- know when the table was changed? -- Do we want to have an owner of each row? diffPolicyMeterUnique OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "The diffPolicyMeterUnique object yields a unique new value for diffPolicyMeterId when read and subsequently set. This value must be tested for uniqueness." ::= { diffPolicyObjects 1 } diffPolicyMeterTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffPolicyMeterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Meter Table enumerates specific token bucket meters that can be used for per-hop-behavior definitions." ::= { diffPolicyTables 2 } diffPolicyMeterEntry OBJECT-TYPE SYNTAX DiffPolicyMeterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the meter table." INDEX { diffPolicyMeterId } ::= { diffPolicyMeterTable 1 } DiffPolicyMeterEntry ::= SEQUENCE { diffPolicyMeterId INTEGER, diffPolicyMeterRate Unsigned32, diffPolicyMeterBurstSize Unsigned32, diffPolicyMeterFailNext RowPointer, diffPolicyMeterSucceedNext RowPointer, diffPolicyMeterStatus RowStatus } diffPolicyMeterId OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "MeterId enumerates the meter entry." ::= { diffPolicyMeterEntry 1 } diffPolicyMeterRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "KBPS" -- kilobits MAX-ACCESS read-create STATUS current DESCRIPTION "The token bucket rate, in kilo-bits per second (KBPS) applicable for this per-hop-behavior definition." ::= { diffPolicyMeterEntry 2 } diffPolicyMeterBurstSize OBJECT-TYPE SYNTAX Unsigned32 UNITS "bytes" MAX-ACCESS read-create STATUS current DESCRIPTION "The number of bytes in a single transmission burst applicable for this per-hop-behavior definition." ::= { diffPolicyMeterEntry 3 } diffPolicyMeterFailNext OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "If the traffic does NOT conform to the meter, FailNext indicates the next data path element to handle the traffic that is applicable for this per-hop-behavior definition." DEFVAL { zeroDotZero } ::= { diffPolicyMeterEntry 4 } diffPolicyMeterSucceedNext OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "If the traffic does conform to the meter, SucceedNext indicates the next data path element to handle the traffic that is applicable for this per-hop-behavior definition." DEFVAL { zeroDotZero } ::= { diffPolicyMeterEntry 5 } diffPolicyMeterStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the activation, deactivation, or deletion of a meter." ::= { diffPolicyMeterEntry 6 } -- -- Actions -- -- Issues, which are the same as on the previous table: -- Do we want a spin-lock on this whole table or on each row -- of the table, or not at all? -- Do we want to have a time stamp on the row so that we -- know when the table was changed? -- Do we want to have an owner of each row? diffPolicyActionUnique OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "The diffPolicyActionUnique object yields a unique new value for diffPolicyActionId when read and subsequently set. This value must be tested for uniqueness." ::= { diffPolicyObjects 2 } diffPolicyActionTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffPolicyActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Action Table enumerates actions that can be performed on a stream of traffic. Multiple Actions can be concatenated. For example, marking of a stream of traffic exiting a meter (conforming or non-conforming), then perform a drop process with dropped traffic counts maintained. Notice counting is considered as a type of action. The set of flow specific counters in the Count Action Table maintains statistics for a flow that arrives to this Action data path element. This count is always taken before any drop processing is performed." ::= { diffPolicyTables 3 } diffPolicyActionEntry OBJECT-TYPE SYNTAX DiffPolicyActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the action table describes the actions applied to traffic exiting a given meter." INDEX { ifIndex, diffPolicyInterfaceDirection, diffPolicyActionId } ::= { diffPolicyActionTable 1 } DiffPolicyActionEntry ::= SEQUENCE { diffPolicyActionId Unsigned32, diffPolicyActionNext RowPointer, diffPolicyActionType INTEGER, diffPolicyActionPointer RowPointer, diffPolicyActionStatus RowStatus } diffPolicyActionId OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Action Id enumerates the Action entry for a per-hop-behavior definition." ::= { diffPolicyActionEntry 1 } diffPolicyActionNext OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The Next pointer indicates the next data path element to handle the traffic that is applicable to this per-hop-behavior definition." DEFVAL { zeroDotZero } ::= { diffPolicyActionEntry 2 } -- -- Harrie believes this is redundant, since with the pointer -- the type of action can be determined. It even can create -- inconsistencies. -- Harrie says: TO BE DELETED! -- diffPolicyActionType OBJECT-TYPE SYNTAX INTEGER { other(1), -- types not specified here. mark(2), -- mark or remark count(3), -- count alwaysDrop(4), -- disallow traffic tailDrop(5), -- fix queue size Drop randomDrop(6), -- Random Drop deterDrop(7) -- Deterministic Drop } MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates the type of action diffPolicyAction points to." ::= { diffPolicyActionEntry 3 } diffPolicyActionPointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "Pointer to a row that provides all the parameters for the type of action indicated applicable for the associated per-hop-behavior." ::= { diffPolicyActionEntry 4 } diffPolicyActionStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the activation, deactivation, or deletion of a meter. Any writable variable may be modified whether the row is active or notInService." ::= { diffPolicyActionEntry 5 } -- -- Queues -- -- same issues as above diffPolicyQSetUnique OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "The diffPolicyQSetUnique object yields a unique new value for diffPolicyQSetId when read and subsequently set. This value must be tested for uniqueness." ::= { diffPolicyObjects 3 } diffPolicyQSetTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffPolicyQSetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Queue Set Table enumerates the queue sets that can be used to define per-hop-behaviors." ::= { diffPolicyTables 4 } diffPolicyQSetEntry OBJECT-TYPE SYNTAX DiffPolicyQSetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry describing a single queue set." INDEX { diffPolicyQSetId } ::= { diffPolicyQSetTable 1 } DiffPolicyQSetEntry ::= SEQUENCE { diffPolicyQSetId INTEGER, diffPolicyQSetParentId Unsigned32, diffPolicyQSetWeight Unsigned32, diffPolicyQSetMethod INTEGER, diffPolicyQSetRateUnit INTEGER, diffPolicyQSetMinRate Unsigned32, diffPolicyQSetMaxRate Unsigned32, diffPolicyQSetNext RowPointer, diffPolicyQSetStatus RowStatus } diffPolicyQSetId OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Queue Set Id enumerates the Queue Set entry." ::= { diffPolicyQSetEntry 1 } -- -- HARRIE: has no idea what this means. Do others?? -- HARRIE says: DELETE IT!! I don't see a use for configuration -- and it can be combined with diffPolicyQSetWeight. -- diffPolicyQSetParentId OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Queue Set Parent Id allows the formation of hierarchical relationships between scheduling algorithms." ::= { diffPolicyQSetEntry 2 } diffPolicyQSetWeight OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Used with QSetParentId in hierarchical scheduling setup. QSetWeight represent the weight of all queues within this queue set, with respect to queues in other queue sets in hierarchical scheduling. For example, this queue set represents the weighed fair queuing scheduling amongst all the queues in this queue set. This set of weighted fair queuing queues as a whole belongs to a priority queuing queue set. QSetWeight determines this queue set's priority/weight in the parent queue set's priority queuing scheduling algorithm. There can be more than one weighed fair queuing queue sets belonging to the same priority queuing parent queue set." ::= { diffPolicyQSetEntry 3 } diffPolicyQSetMethod OBJECT-TYPE SYNTAX INTEGER { other(1), -- not listed here pq(2), -- Priority Queuing wfq(3), -- Weighed Fair Queuing wrr(4) -- Weighed Round Robin } MAX-ACCESS read-create STATUS current DESCRIPTION "The scheduling algorithm used by this queue set that defines the per-hop-behavior." ::= { diffPolicyQSetEntry 4 } diffPolicyQSetRateUnit OBJECT-TYPE SYNTAX INTEGER { kbps(1), -- kilo bits per second packets(2) -- packets per second } MAX-ACCESS read-create STATUS current DESCRIPTION "The unit of measure for the MinRate and MaxRate attributes. The packet unit allows packet fair algorithms in addition to bit fair algorithms." ::= { diffPolicyQSetEntry 5 } diffPolicyQSetMinRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "KBPS" MAX-ACCESS read-create STATUS current DESCRIPTION "The minimum rate for the whole queue set associated per-hop-behavior." ::= { diffPolicyQSetEntry 6 } diffPolicyQSetMaxRate OBJECT-TYPE SYNTAX Unsigned32 UNITS "KBPS" MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum rate for the whole queue set associated per-hop-behavior." ::= { diffPolicyQSetEntry 7 } diffPolicyQSetNext OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "Selects the next data path component to define the associated per-hop-behavior." DEFVAL { zeroDotZero } ::= { diffPolicyQSetEntry 8 } diffPolicyQSetStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the activation, deactivation, or deletion of a queue. Any writable variable may be modified whether the row is active or notInService." ::= { diffPolicyQSetEntry 9 } -- -- same issues as above. diffPolicyQUnique OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "The diffPolicyQUnique object yields a unique new value for diffPolicyQId when read and subsequently set. This value must be tested for uniqueness." ::= { diffPolicyObjects 4 } diffPolicyQTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffPolicyQEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Queue Table enumerates the queues that can be assigned when a per-hop-behavior is assigned. This table includes the measure values which are defined in the DIFF-SERV-MIB in a separate table." ::= { diffPolicyTables 5 } diffPolicyQEntry OBJECT-TYPE SYNTAX DiffPolicyQEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the Queue Table describes a single FIFO queue." INDEX { diffPolicyQSetId, diffPolicyQId } ::= { diffPolicyQTable 1 } DiffPolicyQEntry ::= SEQUENCE { diffPolicyQId INTEGER, diffPolicyQSchedulerWeight Unsigned32, diffPolicyQAvgSampleInt Unsigned32, diffPolicyQAvgWeightExp Unsigned32, diffPolicyQAvgWeightMan Unsigned32, diffPolicyQQAverage Unsigned32, diffPolicyQStatus RowStatus } diffPolicyQId OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Queue Id enumerates the Queue entry." ::= { diffPolicyQEntry 1 } diffPolicyQSchedulerWeight OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The weight or priority of the queue for the associated per-hop-behavior" ::= { diffPolicyQEntry 2 } diffPolicyQAvgSampleInt OBJECT-TYPE SYNTAX Unsigned32 UNIT millisecond MAX-ACCESS read-create STATUS current DESCRIPTION "The sampling interval for queue average calculation, in milliseconds that is associated with this per-hop-behavior." ::= { diffPolicyQEntry 3 } diffPolicyQAvgWeightExp OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current "The exponent part of weight (in real number format) for queue average calculation that is associated with this per-hop-behavior." ::= { diffPolicyQEntry 4 } diffPolicyQAvgWeightMan OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current "The mantissa part of weight (in real number format) for queue average calculation that is associated with this per-hop-behavior." ::= { diffPolicyQEntry 5 } diffPolicyQQAverage OBJECT-TYPE SYNTAX Unsigned32 UNITS "kilo-bits" MAX-ACCESS read-only STATUS current "The current queue average in kilo bits." ::= { diffPolicyQEntry 6 } diffPolicyQStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the activation, deactivation, or deletion of a queue. Any writable variable may be modified whether the row is active or notInService." ::= { diffPolicyQEntry 7 } -- -- MIB Compliance statements. -- diffPolicyMIBCompliances OBJECT IDENTIFIER ::= { diffPolicyMIBConformance 1 } diffPolicyMIBGroups OBJECT IDENTIFIER ::= { diffPolicyMIBConformance 2 } -- TBD END -- -- Copyright (C) The Internet Society (2000). All Rights -- Reserved. -- -- This document and translations of it may be copied and -- furnished to others, and derivative works that comment on or -- otherwise explain it or assist in its implementation may be -- prepared, copied, published and distributed, in whole or in -- part, without restriction of any kind, provided that the above -- copyright notice and this paragraph are included on all such -- copies and derivative works. However, this document itself -- may not be modified in any way, such as by removing the -- copyright notice or references to the Internet Society or -- other Internet organizations, except as needed for the purpose -- of developing Internet standards in which case the procedures -- for copyrights defined in the Internet Standards process must -- be followed, or as required to translate it into languages -- other than English. -- -- The limited permissions granted above are perpetual and will -- not be revoked by the Internet Society or its successors or -- assigns. -- -- This document and the information contained herein is provided -- on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET -- ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE -- USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR -- ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A -- PARTICULAR PURPOSE." -- -- --