1 GMPLS-LABEL-STD-MIB DEFINITIONS ::= BEGIN
4 MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32
5 FROM SNMPv2-SMI -- RFC 2578
6 MODULE-COMPLIANCE, OBJECT-GROUP
7 FROM SNMPv2-CONF -- RFC 2580
9 FROM SNMPv2-TC -- RFC 2579
11 FROM IF-MIB -- RFC 2863
13 FROM DIFFSERV-MIB -- RFC 3289
15 FROM MPLS-TC-STD-MIB -- RFC 3811
16 GmplsLabelTypeTC, GmplsFreeformLabelTC
17 FROM GMPLS-TC-STD-MIB -- RFC 4801
20 gmplsLabelStdMIB MODULE-IDENTITY
22 "200702270000Z" -- 27 February 2007 00:00:00 GMT
24 "IETF Common Control and Measurement Plane (CCAMP) Working Group"
28 Email: tnadeau@cisco.com
32 Email: adrian@olddog.co.uk
34 Comments about this document should be emailed directly to the
35 CCAMP working group mailing list at ccamp@ops.ietf.org."
38 "Copyright (C) The IETF Trust (2007). This version of
39 this MIB module is part of RFC 4803; see the RFC itself for
45 This MIB module contains managed object definitions for labels
46 within GMPLS systems as defined in
47 Generalized Multi-Protocol Label Switching (GMPLS) Signaling
48 Functional Description, Berger, L. (Editor), RFC 3471,
51 "200702270000Z" -- 27 February 2007 00:00:00 GMT
53 "Initial version issued as part of RFC 4803."
56 -- no notifications are currently defined.
58 gmplsLabelObjects OBJECT IDENTIFIER ::= { gmplsLabelStdMIB 1 }
59 gmplsLabelConformance OBJECT IDENTIFIER ::= { gmplsLabelStdMIB 2 }
61 gmplsLabelIndexNext OBJECT-TYPE
62 SYNTAX IndexIntegerNextFree
66 "This object contains an unused value for gmplsLabelIndex,
67 or a zero to indicate that no unused value exists or is
70 A management application wishing to create a row in the
71 gmplsLabelTable may read this object and then attempt to
72 create a row in the table. If row creation fails (because
73 another application has already created a row with the
74 supplied index), the management application should read this
75 object again to get a new index value.
77 When a row is created in the gmplsLabelTable with the
78 gmplsLabelIndex value held by this object, an implementation
79 MUST change the value in this object."
80 ::= { gmplsLabelObjects 1 }
82 gmplsLabelTable OBJECT-TYPE
83 SYNTAX SEQUENCE OF GmplsLabelEntry
84 MAX-ACCESS not-accessible
87 "Table of GMPLS Labels. This table allows the representation
88 of the more complex label forms required for GMPLS that cannot
89 be held within the TEXTUAL-CONVENTION MplsLabel; that is, labels
90 that cannot be encoded within 32 bits. It is, nevertheless, also
91 capable of holding 32-bit labels or regular MPLS Labels if
95 Each entry in this table represents an individual GMPLS Label
96 value. The representation of Labels in tables in other MIB
97 modules may be achieved by a referrence to an entry in this
98 table by means of a row pointer into this table. The indexing
99 of this table provides for arbitrary indexing and also for
100 concatenation of labels.
102 For an example of label concatenation, see RFC 3945, section 7.1.
103 In essence, a GMPLS Label may be composite in order to identify
104 a set of resources in the data plane. Practical examples are
105 timeslots and wavelength sets (which are not contiguous like
108 The indexing mechanism allows multiple entries in this table to
109 be seen as a sequence of labels that should be concatenated.
110 Ordering is potentially very sensitive for concatenation."
112 "1. Generalized Multiprotocol Label Switching (GMPLS)
113 Architecture, RFC 3945, section 7.1."
114 ::= { gmplsLabelObjects 2 }
116 gmplsLabelEntry OBJECT-TYPE
117 SYNTAX GmplsLabelEntry
118 MAX-ACCESS not-accessible
121 "An entry in this table represents a single label value. There
122 are three indexes into the table.
124 - The interface index may be helpful to distinguish which
125 labels are in use on which interfaces or to handle cases
126 where there are a very large number of labels in use in the
127 system. When label representation is desired to apply to the
128 whole system or when it is not important to distinguish
129 labels by their interfaces, this index MAY be set to zero.
131 - The label index provides a way of identifying the label.
133 - The label sub-index is only used for concatenated labels. It
134 identifies each component label. When non-concatenated labels
135 are used, this index SHOULD be set to zero.
137 A storage type object is supplied to control the storage type
138 for each entry, but implementations should note that the storage
139 type of conceptual rows in other tables that include row
140 pointers to an entry in this table SHOULD dictate the storage
141 type of the rows in this table where the row in the other table
149 ::= { gmplsLabelTable 1 }
151 GmplsLabelEntry ::= SEQUENCE {
152 gmplsLabelInterface InterfaceIndexOrZero,
153 gmplsLabelIndex Unsigned32,
154 gmplsLabelSubindex Unsigned32,
155 gmplsLabelType GmplsLabelTypeTC,
156 gmplsLabelMplsLabel MplsLabel,
157 gmplsLabelPortWavelength Unsigned32,
158 gmplsLabelFreeform GmplsFreeformLabelTC,
159 gmplsLabelSonetSdhSignalIndex Integer32,
160 gmplsLabelSdhVc Integer32,
161 gmplsLabelSdhVcBranch Integer32,
162 gmplsLabelSonetSdhBranch Integer32,
163 gmplsLabelSonetSdhGroupBranch Integer32,
164 gmplsLabelWavebandId Unsigned32,
165 gmplsLabelWavebandStart Unsigned32,
166 gmplsLabelWavebandEnd Unsigned32,
167 gmplsLabelStorageType StorageType,
168 gmplsLabelRowStatus RowStatus
171 gmplsLabelInterface OBJECT-TYPE
172 SYNTAX InterfaceIndexOrZero
173 MAX-ACCESS not-accessible
176 "The interface on which this label is used. If this object is set
177 to zero, the label MUST have applicability across the
178 whole system and not be limited to a single interface."
179 ::= { gmplsLabelEntry 1 }
181 gmplsLabelIndex OBJECT-TYPE
182 SYNTAX Unsigned32 (0..4294967295)
183 MAX-ACCESS not-accessible
186 "An arbitrary index into the table to identify a label.
188 Note that implementations that are representing 32-bit labels
189 within this table MAY choose to align this index with the value
190 of the label, and this may result in the use of the value zero
191 since it represents a valid label value. Such implementation
192 should be aware of the implications of sparsely populated
197 A management application may read the gmplsLabelIndexNext
198 object to find a suitable value for this object."
199 ::= { gmplsLabelEntry 2 }
201 gmplsLabelSubindex OBJECT-TYPE
202 SYNTAX Unsigned32 (0..4294967295)
203 MAX-ACCESS not-accessible
206 "In conjunction with gmplsLabelInterface and gmplsLabelIndex,
207 this object uniquely identifies this row. This sub-index allows
208 a single GMPLS Label to be defined as a concatenation of labels.
209 This is particularly useful in TDM.
211 The ordering of sub-labels is strict with the sub-label with
212 the lowest gmplsLabelSubindex appearing first. Note that all
213 sub-labels of a single GMPLS Label must share the same
214 gmplsLabelInterface and gmplsLabelIndex values. For labels that
215 are not composed of concatenated sub-labels, this value SHOULD
217 ::= { gmplsLabelEntry 3 }
219 gmplsLabelType OBJECT-TYPE
220 SYNTAX GmplsLabelTypeTC
221 MAX-ACCESS read-create
224 "Identifies the type of this label. Note that this object does
225 not determine whether MPLS or GMPLS signaling is in use: a value
226 of gmplsMplsLabel(1) denotes that an MPLS Packet Label is
227 present in the gmplsLabelMplsLabel object and encoded using the
228 MplsLabel TEXTUAL-CONVENTION (may be a 20-bit MPLS Label, a 10-
229 or 23-bit Frame Relay Label, or an Asynchronous Transfer Mode
230 (ATM) Label), but does not describe whether this is signaled
233 The value of this object helps determine which of the following
234 objects are valid. This object cannot be modified if
235 gmplsLabelRowStatus is active(1)."
237 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
238 Functional Description, RFC 3471, section 3."
239 ::= { gmplsLabelEntry 4 }
241 gmplsLabelMplsLabel OBJECT-TYPE
245 MAX-ACCESS read-create
248 "The value of an MPLS Label (that is a Packet Label) if this
249 table is used to store it. This may be used in MPLS systems even
250 though the label values can be adequately stored in the MPLS MIB
251 modules (MPLS-LSR-STD-MIB and MPLS-TE-STD-MIB). Furthermore, in
252 mixed MPLS and GMPLS systems, it may be advantageous to store all
253 labels in a single label table. Lastly, in GMPLS systems where
254 Packet Labels are used (that is in systems that use GMPLS
255 signaling and GMPLS Labels for packet switching), it may be
256 desirable to use this table.
258 This object is only valid if gmplsLabelType is set
259 to gmplsMplsLabel(1). This object cannot be modified if
260 gmplsLabelRowStatus is active(1)."
262 "1. MPLS Label Stack Encoding, RFC 3032."
264 ::= { gmplsLabelEntry 5 }
266 gmplsLabelPortWavelength OBJECT-TYPE
268 MAX-ACCESS read-create
271 "The value of a Port or Wavelength Label when carried as a
272 Generalized Label. Only valid if gmplsLabelType is set to
273 gmplsPortWavelengthLabel(2). This object cannot be modified if
274 gmplsLabelRowStatus is active(1)."
276 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
277 Functional Description, RFC 3471, section 3.2.1.1."
279 ::= { gmplsLabelEntry 6 }
281 gmplsLabelFreeform OBJECT-TYPE
282 SYNTAX GmplsFreeformLabelTC
283 MAX-ACCESS read-create
286 "The value of a Freeform Generalized Label that does not conform
287 to one of the standardized label encodings or that an
288 implementation chooses to represent as an octet string without
289 further decoding. Only valid if gmplsLabelType is set to
290 gmplsFreeformLabel(3). This object cannot be modified
291 if gmplsLabelRowStatus is active(1)."
295 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
296 Functional Description, RFC 3471, section 3.2."
298 ::= { gmplsLabelEntry 7 }
300 gmplsLabelSonetSdhSignalIndex OBJECT-TYPE
301 SYNTAX Integer32 (0..4095)
302 MAX-ACCESS read-create
305 "The Signal Index value (S) of a SONET or SDH Generalized Label.
306 Zero indicates that this field is non-significant. Only valid if
307 gmplsLabelType is set to gmplsSonetLabel(4) or gmplsSdhLabel(5).
308 This object cannot be modified if gmplsLabelRowStatus is
311 "1. Generalized Multi-Protocol Label Switching (GMPLS) Extensions
312 for Synchronous Optical Network (SONET) and Synchronous
313 Digital Hierarchy (SDH) Control, RFC 4606, section 3."
315 ::= { gmplsLabelEntry 8 }
317 gmplsLabelSdhVc OBJECT-TYPE
318 SYNTAX Integer32 (0..15)
319 MAX-ACCESS read-create
322 "The VC Indicator (U) of an SDH Generalized Label. Zero indicates
323 that this field is non-significant. Only valid if gmplsLabelType
324 is set to gmplsSdhLabel(5). This object cannot be modified if
325 gmplsLabelRowStatus is active(1)."
327 "1. Generalized Multi-Protocol Label Switching (GMPLS) Extensions
328 for Synchronous Optical Network (SONET) and Synchronous
329 Digital Hierarchy (SDH) Control, RFC 4606, section 3."
331 ::= { gmplsLabelEntry 9 }
333 gmplsLabelSdhVcBranch OBJECT-TYPE
334 SYNTAX Integer32 (0..15)
335 MAX-ACCESS read-create
338 "The VC Branch Indicator (K) of an SDH Generalized Label. Zero
339 indicates that this field is non-significant. Only valid if
340 gmplsLabelType is set to gmplsSdhLabel(5). This
341 object cannot be modified if gmplsLabelRowStatus is active(1)."
346 "1. Generalized Multi-Protocol Label Switching (GMPLS) Extensions
347 for Synchronous Optical Network (SONET) and Synchronous
348 Digital Hierarchy (SDH) Control, RFC 4606, section 3."
350 ::= { gmplsLabelEntry 10 }
352 gmplsLabelSonetSdhBranch OBJECT-TYPE
353 SYNTAX Integer32 (0..15)
354 MAX-ACCESS read-create
357 "The Branch Indicator (L) of a SONET or SDH Generalized Label.
358 Zero indicates that this field is non-significant. Only valid
359 gmplsLabelType is set to gmplsSonetLabel(4) or
360 gmplsSdhLabel(5). This object cannot be modified if
361 gmplsLabelRowStatus is active(1)."
363 "1. Generalized Multi-Protocol Label Switching (GMPLS) Extensions
364 for Synchronous Optical Network (SONET) and Synchronous
365 Digital Hierarchy (SDH) Control, RFC 4606, section 3."
367 ::= { gmplsLabelEntry 11 }
369 gmplsLabelSonetSdhGroupBranch OBJECT-TYPE
370 SYNTAX Integer32 (0..15)
371 MAX-ACCESS read-create
374 "The Group Branch Indicator (M) of a SONET or SDH Generalized
375 Label. Zero indicates that this field is non-significant.
376 Only valid if gmplsLabelType is set to gmplsSonetLabel(4) or
377 gmplsSdhLabel(5). This object cannot be modified if
378 gmplsLabelRowStatus is active(1)."
380 "1. Generalized Multi-Protocol Label Switching (GMPLS) Extensions
381 for Synchronous Optical Network (SONET) and Synchronous
382 Digital Hierarchy (SDH) Control, RFC 4606, section 3."
384 ::= { gmplsLabelEntry 12 }
386 gmplsLabelWavebandId OBJECT-TYPE
388 MAX-ACCESS read-create
391 "The waveband identifier component of a Waveband Label. Only
392 valid if gmplsLabelType is set to gmplsWavebandLabel(6). This
393 object cannot be modified if gmplsLabelRowStatus is active(1)."
397 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
398 Functional Description, RFC 3471, section 3.3."
400 ::= { gmplsLabelEntry 13 }
402 gmplsLabelWavebandStart OBJECT-TYPE
404 MAX-ACCESS read-create
407 "The starting label component of a Waveband Label. Only valid if
408 gmplsLabelType is set to gmplsWavebandLabel(6). This object
409 cannot be modified if gmplsLabelRowStatus is active(1)."
411 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
412 Functional Description, RFC 3471, section 3.3."
414 ::= { gmplsLabelEntry 14 }
416 gmplsLabelWavebandEnd OBJECT-TYPE
418 MAX-ACCESS read-create
421 "The end label component of a Waveband Label. Only valid if
422 gmplsLabelType is set to gmplsWavebandLabel(6). This object
423 cannot be modified if gmplsLabelRowStatus is active(1)."
425 "1. Generalized Multi-Protocol Label Switching (GMPLS) Signaling
426 Functional Description, RFC 3471, section 3.3."
428 ::= { gmplsLabelEntry 15 }
430 gmplsLabelStorageType OBJECT-TYPE
432 MAX-ACCESS read-create
435 "This variable indicates the storage type for this row. The
436 agent MUST ensure that this object's value remains consistent
437 with the storage type of any rows in other tables that contain
438 pointers to this row. In particular, the storage type of this
439 row must be at least as permanent as that of any row that points
441 Conceptual rows having the value 'permanent' need not
442 allow write-access to any columnar objects in the row."
446 "1. Textual Conventions for SMIv2, STD 58, RFC 2579, section 2."
448 ::= { gmplsLabelEntry 16 }
450 gmplsLabelRowStatus OBJECT-TYPE
452 MAX-ACCESS read-create
455 "This variable is used to create, modify, and/or delete a row in
456 this table. When a row in this table has a row in the active(1)
457 state, no objects in this row can be modified except the
458 gmplsLabelRowStatus and gmplsLabelStorageType.
460 The gmplsLabelType object does not have a default and must be
461 set before a row can become active. The corresponding label
462 objects (dependent on the value of gmplsLabelType) should also
463 be set unless they happen to need to use the specified default
466 gmplsLabelType setting objects to be set
467 --------------------------------------------------------------
468 gmplsMplsLabel(1) gmplsLabelMplsLabel
470 gmplsPortWavelengthLabel(2) gmplsLabelPortWavelength
472 gmplsFreeformLabel(3) gmplsLabelFreeform
474 gmplsSonetLabel(4) gmplsLabelSonetSdhSignalIndex
476 gmplsLabelSdhVcBranch
477 gmplsLabelSonetSdhBranch
478 gmplsLabelSonetSdhGroupBranch
480 gmplsSdhLabel(5) gmplsLabelSonetSdhSignalIndex
482 gmplsLabelSdhVcBranch
483 gmplsLabelSonetSdhBranch
484 gmplsLabelSonetSdhGroupBranch
486 gmplsWavebandLabel(6) gmplsLabelWavebandId
487 gmplsLabelWavebandStart
488 gmplsLabelWavebandEnd"
489 ::= { gmplsLabelEntry 17 }
492 OBJECT IDENTIFIER ::= { gmplsLabelConformance 1 }
496 gmplsLabelCompliances
497 OBJECT IDENTIFIER ::= { gmplsLabelConformance 2 }
499 gmplsLabelModuleReadOnlyCompliance MODULE-COMPLIANCE
502 "Compliance requirement for implementations that only provide
503 read-only support for GMPLS-LABEL-STD-MIB. Such devices can then
504 be monitored but cannot be configured using this MIB module."
506 MODULE -- this module
508 -- The mandatory groups have to be implemented by LSRs claiming
509 -- support for this MIB module. This MIB module is, however, not
510 -- mandatory for a working implementation of a GMPLS LSR with full
511 -- MIB support if the GMPLS Labels in use can be represented within
512 -- a 32-bit quantity.
518 GROUP gmplsLabelPacketGroup
520 "This group extends gmplsLabelTableGroup for implementations that
521 support Packet Labels. It is optional for implementations that
522 do not support Packet Labels."
524 GROUP gmplsLabelPortWavelengthGroup
526 "This group extends gmplsLabelTableGroup for implementations that
527 support Port and Wavelength Labels. It is optional for
528 implementations that do not support Wavelength Labels."
530 GROUP gmplsLabelFreeformGroup
532 "This group extends gmplsLabelTableGroup for implementations that
533 support Freeform Labels. It is optional for implementations that
534 do not support Freeform Labels."
536 GROUP gmplsLabelSonetSdhGroup
538 "This group extends gmplsLabelTableGroup for implementations that
539 support SONET or SDH Labels. It is optional for implementations
540 that do not support SONET or SDH Labels."
542 GROUP gmplsLabelWavebandGroup
547 "This group extends gmplsLabelTableGroup for implementations that
548 support Waveband Labels. It is optional for implementations that
549 do not support Waveband Labels."
550 OBJECT gmplsLabelType
553 "Write access is not required."
555 OBJECT gmplsLabelMplsLabel
558 "Write access is not required."
560 OBJECT gmplsLabelPortWavelength
563 "Write access is not required."
565 OBJECT gmplsLabelFreeform
568 "Write access is not required."
570 OBJECT gmplsLabelSonetSdhSignalIndex
573 "Write access is not required."
575 OBJECT gmplsLabelSdhVc
578 "Write access is not required."
580 OBJECT gmplsLabelSdhVcBranch
583 "Write access is not required."
585 OBJECT gmplsLabelSonetSdhBranch
588 "Write access is not required."
590 OBJECT gmplsLabelSonetSdhGroupBranch
593 "Write access is not required."
598 OBJECT gmplsLabelWavebandId
601 "Write access is not required."
602 OBJECT gmplsLabelWavebandStart
605 "Write access is not required."
607 OBJECT gmplsLabelWavebandEnd
610 "Write access is not required."
612 OBJECT gmplsLabelStorageType
615 "Write access is not required."
617 OBJECT gmplsLabelRowStatus
618 SYNTAX RowStatus { active(1) }
621 "Write access is not required, and active(1) is
622 the only status that needs to be supported."
624 ::= { gmplsLabelCompliances 1 }
626 gmplsLabelModuleFullCompliance MODULE-COMPLIANCE
629 "Compliance statement for agents that support the complete
630 GMPLS-LABEL-STD-MIB module.
632 The mandatory groups have to be implemented by GMPLS LSRs
633 claiming support for this MIB module. This MIB module is,
634 however, not mandatory for a working implementation of a GMPLS
635 LSR with full MIB support if the GMPLS Labels in use can be
636 represented within a 32-bit quantity."
638 MODULE -- this module
644 ::= { gmplsLabelCompliances 2 }
649 gmplsLabelTableGroup OBJECT-GROUP
653 gmplsLabelStorageType,
659 "Necessary, but not sufficient, set of objects to implement label
660 table support. In addition, depending on the type of labels
661 supported, the following other groups defined below are
664 gmplsLabelWavebandGroup and/or
665 gmplsLabelPacketGroup and/or
666 gmplsLabelPortWavelengthGroup and/or
667 gmplsLabelFreeformGroup and/or
668 gmplsLabelSonetSdhGroup."
669 ::= { gmplsLabelGroups 1 }
671 gmplsLabelPacketGroup OBJECT-GROUP
677 "Object needed to implement Packet (MPLS) Labels."
678 ::= { gmplsLabelGroups 2 }
680 gmplsLabelPortWavelengthGroup OBJECT-GROUP
682 gmplsLabelPortWavelength
686 "Object needed to implement Port and Wavelength Labels."
687 ::= { gmplsLabelGroups 3 }
689 gmplsLabelFreeformGroup OBJECT-GROUP
695 "Object needed to implement Freeform Labels."
696 ::= { gmplsLabelGroups 4 }
700 gmplsLabelSonetSdhGroup OBJECT-GROUP
702 gmplsLabelSonetSdhSignalIndex,
704 gmplsLabelSdhVcBranch,
705 gmplsLabelSonetSdhBranch,
706 gmplsLabelSonetSdhGroupBranch
710 "Objects needed to implement SONET and SDH Labels."
711 ::= { gmplsLabelGroups 5 }
713 gmplsLabelWavebandGroup OBJECT-GROUP
715 gmplsLabelWavebandId,
716 gmplsLabelWavebandStart,
717 gmplsLabelWavebandEnd
721 "Objects needed to implement Waveband Labels."
722 ::= { gmplsLabelGroups 6 }