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