Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / pibs / tubs / QOS-POLICY-802-PIB
1 QOS-POLICY-802-PIB PIB-DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     ibrpib FROM TUBS-SMI
5     Unsigned32, Integer32,
6     MODULE-IDENTITY, OBJECT-TYPE
7             FROM SNMPv2-SMI
8     TruthValue, PhysAddress,
9     TEXTUAL-CONVENTION
10             FROM SNMPv2-TC
11     RoleCombination
12             FROM POLICY-FRAMEWORK-PIB
13     Dscp
14             FROM QOS-POLICY-IP-PIB
15     pib
16             FROM COPS-PR-SPPI
17     InstanceId
18             FROM COPS-PR-SPPI-TC;
19
20 qosPolicy802Pib  MODULE-IDENTITY
21     SUBJECT-CATEGORIES { all } -- to be assigned
22     LAST-UPDATED "9906241800Z"
23     ORGANIZATION "IETF RAP WG"
24     CONTACT-INFO "
25                   Michael Fine
26                   Cisco Systems, Inc.
27                   170 West Tasman Drive
28                   San Jose, CA  95134-1706 USA
29                   Phone: +1 408 527 8218
30                   Email: mfine@cisco.com
31
32                   Keith McCloghrie
33                   Cisco Systems, Inc.
34                   170 West Tasman Drive,
35                   San Jose, CA 95134-1706 USA
36                   Phone: +1 408 526 5260
37                   Email: kzm@cisco.com
38
39                   John Seligson
40                   Nortel Networks, Inc.
41                   4401 Great America Parkway
42                   Santa Clara, CA 95054 USA
43                   Phone: +1 408 495 2992
44                   Email: jseligso@nortelnetworks.com"
45     DESCRIPTION
46             "The PIB module containing an initial set of policy
47              rule classes that describe the quality of service
48              (QoS) policies supported by devices for IEEE 802-
49              based traffic."
50
51     ::= { ibrpib 5 } -- to be assigned !
52
53 qosPolicy802PibClasses OBJECT IDENTIFIER ::= { qosPolicy802Pib 1 }
54
55 --
56 -- Textual Conventions
57 --
58
59 --
60 -- IEEE 802 CoS
61 --
62
63 QosIeee802Cos ::= TEXTUAL-CONVENTION
64     STATUS       current
65     DESCRIPTION
66         "An integer that is in the range of the IEEE 802 CoS
67         values. This corresponds to the 802.1p priority values."
68
69     SYNTAX INTEGER (0..7)
70
71 --
72 -- General configuration information for the entire domain
73 --
74
75 qos802DomainConfig OBJECT IDENTIFIER ::= { qosPolicy802PibClasses 1 }
76
77 --
78 -- Differentiated Services Code Point Mapping Table
79 --
80 -- Supports the mapping of DSCP values to IEEE CoS values.
81 --
82
83 qos802DscpMappingTable OBJECT-TYPE
84     SYNTAX         SEQUENCE OF Qos802DscpMappingEntry
85     PIB-ACCESS  install
86     STATUS         current
87     DESCRIPTION
88         "Maps each DSCP to an QosIeee802Cos.  When configured
89         for the first time, all 64 entries of the table must
90         be specified. Thereafter, instances may be modified but
91         not deleted unless all instances are deleted."
92
93     INSTALL-ERRORS {
94         priInstNotComplete(1)    -- required instances not created
95         }
96
97     ::= { qos802DomainConfig 1 }
98
99 qos802DscpMappingEntry OBJECT-TYPE
100     SYNTAX         Qos802DscpMappingEntry
101     STATUS         current
102     DESCRIPTION
103         "An instance of the qos802DscpMapping class. A total of 64
104         class instances are constantly maintained after initial device
105         configuration."
106
107     PIB-INDEX { qos802DscpMappingId }
108     ::= { qos802DscpMappingTable 1 }
109
110 Qos802DscpMappingEntry ::= SEQUENCE {
111         qos802DscpMappingId           InstanceId,
112         qos802DscpMappingDscp         Dscp,
113         qos802DscpMapping802Cos       QosIeee802Cos
114 }
115
116 qos802DscpMappingId OBJECT-TYPE
117     SYNTAX         InstanceId
118     STATUS         current
119     DESCRIPTION
120         "A unique ID for this policy rule instance."
121
122     ::= { qos802DscpMappingEntry 1 }
123
124 qos802DscpMappingDscp OBJECT-TYPE
125     SYNTAX         Dscp
126     STATUS         current
127     DESCRIPTION
128         "The DSCP class instance attribute that is used to
129         determine the appropriate layer 2 CoS mappings. DSCP
130         values 0 through 63 (inclusive) are maintained in
131         the table."
132
133     ::= { qos802DscpMappingEntry 2 }
134
135 qos802DscpMapping802Cos OBJECT-TYPE
136     SYNTAX         QosIeee802Cos
137     STATUS         current
138     DESCRIPTION
139         "The IEEE 802 CoS value to use when mapping the DSCP
140         value specified by the qos802DscpMappingDscp attribute
141         to a IEEE 802 CoS."
142
143     ::= { qos802DscpMappingEntry 3 }
144
145 --
146 -- Layer 2 CoS-to-DSCP Mapping Table
147 --
148 -- Supports the mapping of IEEE CoS values to DSCP values
149 -- for generic QoS traffic classification
150 --
151
152 qos802CosToDscpTable OBJECT-TYPE
153     SYNTAX         SEQUENCE OF Qos802CosToDscpEntry
154     PIB-ACCESS  install
155     STATUS         current
156     DESCRIPTION
157         "Maps each of eight layer 2 CoS values to a DSCP.  When
158         configured for the first time, all 8 entries of the table
159         must be specified. Thereafter, instances may be modified
160         but not deleted unless all instances are deleted."
161
162     INSTALL-ERRORS {
163         priInstNotComplete(1)    -- required instances not created
164         }
165
166     ::= { qos802DomainConfig 2 }
167
168 qos802CosToDscpEntry OBJECT-TYPE
169     SYNTAX         Qos802CosToDscpEntry
170     STATUS         current
171     DESCRIPTION
172         "An instance of the qosCosToDscp class. A total of 8
173         class instances are constantly maintained after initial
174         device configuration."
175
176     PIB-INDEX { qos802CosToDscpId }
177     ::= { qos802CosToDscpTable 1 }
178
179 Qos802CosToDscpEntry ::= SEQUENCE {
180         qos802CosToDscpId   InstanceId,
181         qos802CosToDscpCos  QosIeee802Cos,
182         qos802CosToDscpDscp Dscp
183 }
184
185 qos802CosToDscpId OBJECT-TYPE
186     SYNTAX         InstanceId
187     STATUS         current
188
189     DESCRIPTION
190         "A unique index for this policy rule instance."
191
192     ::= { qos802CosToDscpEntry 1 }
193
194 qos802CosToDscpCos OBJECT-TYPE
195     SYNTAX         QosIeee802Cos
196     STATUS         current
197     DESCRIPTION
198         "The layer 2 CoS class instance attribute that is used to
199         determine the appropriate DSCP mappings. CoS values 0
200         through 7 (inclusive) are maintained in the table."
201
202     ::= { qos802CosToDscpEntry 2 }
203
204 qos802CosToDscpDscp OBJECT-TYPE
205     SYNTAX         Dscp
206     STATUS         current
207     DESCRIPTION
208         "The DSCP value to use when mapping the layer 2 CoS value
209         specified by the qosCosToDscp attribute to a DSCP."
210
211     ::= { qos802CosToDscpEntry 3 }
212
213 --
214 -- The IEEE 802 Classification and Policing Group
215 --
216
217 qos802Qos OBJECT IDENTIFIER ::= { qosPolicy802PibClasses 2 }
218
219 --
220 -- The IEEE 802 ACE Table
221 --
222 -- The IEEE 802 ACE Table supports the specification of IEEE
223 -- 802-based (e.g., 802.3) information that is used to perform
224 -- traffic classification.
225 --
226
227 qos802AceTable OBJECT-TYPE
228     SYNTAX         SEQUENCE OF Qos802AceEntry
229     PIB-ACCESS  install
230     STATUS         current
231     DESCRIPTION
232         "IEEE 802-based ACE definitions. A class that contains
233         attributes of IEEE 802 (e.g., 802.3) traffic that form
234
235         an association that is used to perform traffic
236         classification."
237
238     ::= { qos802Qos 1 }
239
240 qos802AceEntry OBJECT-TYPE
241     SYNTAX         Qos802AceEntry
242     STATUS         current
243     DESCRIPTION
244         "IEEE 802-based ACE definitions.  An entry specifies
245         (potentially) several distinct matching components. Each
246         component is tested against the data in a frame
247         individually. An overall match occurs when all of the
248         individual components match the data they are compared
249         against in the frame being processed. A failure of any
250         one test causes the overall match to fail.
251
252         Wildcards may be specified for those fields that are not
253         relevant."
254
255     PIB-INDEX { qos802AceId }
256     ::= { qos802AceTable 1 }
257
258 Qos802AceEntry ::= SEQUENCE {
259         qos802AceId              InstanceId,
260         qos802AceDstAddr         PhysAddress,
261         qos802AceDstAddrMask     PhysAddress,
262         qos802AceSrcAddr         PhysAddress,
263         qos802AceSrcAddrMask     PhysAddress,
264         qos802AceVlanId          Integer32,
265         qos802AceVlanTagRequired INTEGER,
266         qos802AceEtherType       Integer32,
267         qos802AceUserPriority    BITS,
268         qos802AcePermit          TruthValue
269 }
270
271 qos802AceId OBJECT-TYPE
272     SYNTAX         InstanceId
273     STATUS         current
274     DESCRIPTION
275         "An arbitrary integer index that uniquely identifies this
276         802 ACE among all of the 802 ACEs. Note that this identifier
277         is used in instances of the qos802Acl class to associate a
278         802 ACE with a 802 ACL. An active ACE/ACL association
279         prohibits the deletion of the 802 ACE until the ACE/ACL
280
281         association is terminated. Class instances may not be
282         contiguous."
283
284     ::= { qos802AceEntry 1 }
285
286 qos802AceDstAddr OBJECT-TYPE
287     SYNTAX         PhysAddress
288     STATUS         current
289     DESCRIPTION
290         "The 802 address against which the 802 DA of incoming traffic
291         streams will be compared. Frames whose 802 DA matches the
292         physical address specified by this object, taking into account
293         address wildcarding as specified by the qos802AceDstAddrMask
294         object, are potentially subject to the processing guidelines
295         that are associated with this entry through the related
296         action class."
297
298     ::= { qos802AceEntry 2 }
299
300 qos802AceDstAddrMask OBJECT-TYPE
301     SYNTAX         PhysAddress
302     STATUS         current
303     DESCRIPTION
304         "This object specifies the bits in a 802 destination address
305         that should be considered when performing a 802 DA comparison
306         against the address specified in the qos802AceDstAddr object.
307
308         The value of this object represents a mask that is logically
309         and'ed with the 802 DA in received frames to derive the value
310         to be compared against the qos802AceDstAddr address. A zero
311         bit in the mask thus means that the corresponding bit in the
312         address always matches. The qos802AceDstAddr value must also
313         be masked using this value prior to any comparisons.
314
315         The length of this object in octets must equal the length in
316         octets of the qos802AceDstAddr. Note that a mask with no bits
317         set (i.e., all zeroes) effectively wildcards the
318         qos802AceDstAddr object."
319
320     ::= { qos802AceEntry 3 }
321
322 qos802AceSrcAddr OBJECT-TYPE
323     SYNTAX         PhysAddress
324     STATUS         current
325     DESCRIPTION
326
327         "The 802 MAC address against which the 802 MAC SA of incoming
328         traffic streams will be compared. Frames whose 802 MAC SA
329         matches the physical address specified by this object,
330         taking into account address wildcarding as specified by the
331         qos802AceSrcAddrMask object, are potentially subject to the
332         processing guidelines that are associated with this entry
333         through the related action class."
334
335     ::= { qos802AceEntry 4 }
336
337 qos802AceSrcAddrMask OBJECT-TYPE
338     SYNTAX         PhysAddress
339     STATUS         current
340     DESCRIPTION
341         "This object specifies the bits in a 802 MAC source address
342         that should be considered when performing a 802 MAC SA
343         comparison against the address specified in the
344         qos802AceSrcAddr object.
345
346         The value of this object represents a mask that is logically
347         and'ed with the 802 MAC SA in received frames to derive the
348         value to be compared against the qos802AceSrcAddr address. A
349         zero bit in the mask thus means that the corresponding bit
350         in the address always matches. The qos802AceSrcAddr value
351         must also be masked using this value prior to any
352         comparisons.
353
354         The length of this object in octets must equal the length in
355         octets of the qos802AceSrcAddr. Note that a mask with no bits
356         set (i.e., all zeroes) effectively wildcards the
357         qos802AceSrcAddr object."
358
359     ::= { qos802AceEntry 5 }
360
361 qos802AceVlanId OBJECT-TYPE
362     SYNTAX         Integer32 (-1 | 1..4094)
363     STATUS         current
364     DESCRIPTION
365         "The VLAN ID (VID) that uniquely identifies a VLAN
366         within the device. This VLAN may be known or unknown
367         (i.e., traffic associated with this VID has not yet
368         been seen by the device) at the time this entry
369         is instantiated.
370
371         Setting the qos802AceVlanId object to -1 indicates that
372
373         VLAN data should not be considered during traffic
374         classification."
375
376     ::= { qos802AceEntry 6 }
377
378 qos802AceVlanTagRequired OBJECT-TYPE
379     SYNTAX         INTEGER {
380                        taggedOnly(1),
381                        priorityTaggedPlus(2),
382                        untaggedOnly(3),
383                        ignoreTag(4)
384                    }
385     STATUS         current
386     DESCRIPTION
387         "This object indicates whether the presence of an
388         IEEE 802.1Q VLAN tag in data link layer frames must
389         be considered when determining if a given frame
390         matches this 802 ACE entry.
391
392         A value of 'taggedOnly(1)' means that only frames
393         containing a VLAN tag with a non-Null VID (i.e., a
394         VID in the range 1..4094) will be considered a match.
395
396         A value of 'priorityTaggedPlus(2)' means that only
397         frames containing a VLAN tag, regardless of the value
398         of the VID, will be considered a match.
399
400         A value of 'untaggedOnly(3)' indicates that only
401         untagged frames will match this filter component.
402
403         The presence of a VLAN tag is not taken into
404         consideration in terms of a match if the value is
405         'ignoreTag(4)'."
406
407     ::= { qos802AceEntry 7 }
408
409 qos802AceEtherType OBJECT-TYPE
410     SYNTAX         Integer32 (-1 | 0..'ffff'h)
411     STATUS         current
412     DESCRIPTION
413         "This object specifies the value that will be compared
414         against the value contained in the EtherType field of an
415         IEEE 802 frame. Example settings would include 'IP'
416         (0x0800), 'ARP' (0x0806) and 'IPX' (0x8137).
417
418         Setting the qos802AceEtherTypeMin object to -1 indicates
419         that EtherType data should not be considered during traffic
420         classification.
421
422         Note that the position of the EtherType field depends on
423         the underlying frame format. For Ethernet-II encapsulation,
424         the EtherType field follows the 802 MAC source address. For
425         802.2 LLC/SNAP encapsulation, the EtherType value follows the
426         Organization Code field in the 802.2 SNAP header. The value
427         that is tested with regard to this filter component therefore
428         depends on the data link layer frame format being used. If
429         this 802 ACE component is active when there is no EtherType
430         field in a frame (e.g., 802.2 LLC), a match is implied."
431
432     ::= { qos802AceEntry 8 }
433
434 qos802AceUserPriority OBJECT-TYPE
435     SYNTAX         BITS {
436                         matchPriority0(0),
437                         matchPriority1(1),
438                         matchPriority2(2),
439                         matchPriority3(3),
440                         matchPriority4(4),
441                         matchPriority5(5),
442                         matchPriority6(6),
443                         matchPriority7(7)
444                    }
445     STATUS         current
446     DESCRIPTION
447         "The set of values, representing the potential range
448         of user priority values, against which the value contained
449         in the user priority field of a tagged 802.1 frame is
450         compared. A test for equality is performed when determining
451         if a match exists between the data in a data link layer
452         frame and the value of this 802 ACE component. Multiple
453         values may be set at one time such that potentially several
454         different user priority values may match this 802 ACE
455         component.
456
457         Setting all of the bits that are associated with this
458         object causes all user priority values to match this
459         attribute. This essentially makes any comparisons
460         with regard to user priority values unnecessary. Untagged
461         frames are treated as an implicit match."
462
463     ::= { qos802AceEntry 9 }
464
465 qos802AcePermit OBJECT-TYPE
466     SYNTAX         TruthValue
467     STATUS         current
468     DESCRIPTION
469         "If the frame matches this ACE and the value of this
470         attribute is true, then the matching process terminates
471         and the QoS associated with this 802-based ACE (indirectly
472         through the 802 ACL) is applied to the packet.  If the
473         value of this attribute is false, then no more 802 ACEs in
474         this 802 ACL are compared to this packet and matching
475         continues with the first 802-based ACE of the next 802 ACL."
476
477     ::= { qos802AceEntry 10 }
478
479 --
480 -- The IEEE 802 ACL Definition Table
481 --
482 -- The IEEE 802 ACL Definition Table supports the association of
483 -- distinct IEEE 802-based (e.g., 802.3) traffic classification
484 -- specifications into an ordered list.
485 --
486
487 qos802AclDefinitionTable OBJECT-TYPE
488     SYNTAX         SEQUENCE OF Qos802AclDefinitionEntry
489     PIB-ACCESS  install
490     STATUS         current
491     DESCRIPTION
492         "IEEE 802-based ACL definitions. A class that defines a
493         set of 802 ACLs, each of which is comprised of an ordered
494         list of 802 ACEs."
495
496     INSTALL-ERRORS {
497         priPrecedenceConflict(1) -- precedence conflict detected
498         }
499
500     ::= { qos802Qos 2 }
501
502 qos802AclDefinitionEntry OBJECT-TYPE
503     SYNTAX         Qos802AclDefinitionEntry
504     STATUS         current
505     DESCRIPTION
506         "IEEE 802-based ACL definitions. An entry specifies an
507         instance of this class that associates an 802 ACE with
508
509         a given 802 ACL. The evaluation order of distinct 802
510         ACEs that are associated with a specific 802 ACL is
511         specified as well."
512
513     PIB-INDEX { qos802AclDefinitionId }
514     ::= { qos802AclDefinitionTable 1 }
515
516 Qos802AclDefinitionEntry ::= SEQUENCE {
517         qos802AclDefinitionId       InstanceId,
518         qos802AclDefinitionAclId    InstanceId,
519         qos802AclDefinitionAceId    InstanceId,
520         qos802AclDefinitionAceOrder Unsigned32
521 }
522
523 qos802AclDefinitionId OBJECT-TYPE
524     SYNTAX         InstanceId
525     STATUS         current
526     DESCRIPTION
527         "An arbitrary integer index that uniquely identifies this
528         802 ACE / 802 ACL association."
529
530     ::= { qos802AclDefinitionEntry 1 }
531
532 qos802AclDefinitionAclId OBJECT-TYPE
533     SYNTAX         InstanceId
534     STATUS         current
535     DESCRIPTION
536         "An index for this 802 ACL. Each 802 ACL in the device is
537         assigned a unique integer index. There will (potentially) be
538         multiple instances of the qos802AclDefinition class with this
539         identifier, one for each 802 ACE that is associated with the
540         specified 802 ACL.
541
542         For example, assume that 2 802 ACLs, each comprised of 4 802
543         ACEs, have been installed. The instances of this class may
544         appear as follows:
545
546                  Index   AclId   AceId   AceOrder
547                    10      6       4        1
548                    11      6       5        2
549                    12      6       9        23
550                    13      6       11       24
551                    65      18      5        8
552                    66      18      9        12
553                    67      18      13       15
554
555                    70      18      14       16
556
557         Note that this identifier is used in instances of the
558         qosAclTarget class to associate an 802 ACL with an interface
559         set and action. An active ACL Target association prohibits
560         the deletion of all of the qos802AclDefinition instances
561         with a given qos802AclDefinitionAclId (i.e., at least one
562         entry for the specific qos802AclDefinitionAclId must be
563         present in this table) until the ACL Target association is
564         terminated."
565
566     ::= { qos802AclDefinitionEntry 2 }
567
568 qos802AclDefinitionAceId OBJECT-TYPE
569     SYNTAX         InstanceId
570     STATUS         current
571     DESCRIPTION
572         "This attribute identifies the 802 ACE in the qos802AceTable
573         that is associated with the 802 ACL specified by
574         qos802AclDefinitionAclId object. The corresponding instance
575         in the qos802Ace class must exist prior to being associated
576         with a 802 ACL.
577
578         Attempting to specify an unknown class instance will result
579         in an appropriate error indication being returned to the
580         entity that is attempting to install the conflicting entry.
581         For example, a 'priUnknown(2)' error indication is returned
582         to the policy server in this situation."
583
584     ::= { qos802AclDefinitionEntry 3 }
585
586 qos802AclDefinitionAceOrder OBJECT-TYPE
587     SYNTAX         Unsigned32
588     STATUS         current
589     DESCRIPTION
590         "The precedence of the 802 ACE, identified via the
591         qos802AclDefinitionAceId object, with regard to evaluation
592         order. The precedence determines the order of evaluation of
593         this ACE in relation to related 802 ACEs that are associated
594         with an ACL. An ACE with a given precedence order in the
595         access control list is evaluated before one with a higher-
596         valued precedence order.
597
598         Precedence values within a group must be unique otherwise
599         instance installation will be prohibited and an error
600
601         value will be returned.
602
603         Note that qos802AclDefinitionAceOrder values within a given
604         ACL need not be contiguous."
605
606     ::= { qos802AclDefinitionEntry 4 }
607
608 END