-- extracted from draft-ietf-ccamp-gmpls-lsr-mib-06.txt -- at Sat Oct 9 06:23:38 2004 GMPLS-LABEL-STD-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32 FROM SNMPv2-SMI -- [RFC2578] MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- [RFC2580] RowStatus, StorageType FROM SNMPv2-TC -- [RFC2579] InterfaceIndexOrZero FROM IF-MIB -- [RFC2863] IndexIntegerNextFree FROM DIFFSERV-MIB -- [RFC3289] MplsLabel FROM MPLS-TC-STD-MIB -- [RFC3811] GmplsGeneralizedLabelTypes, GmplsFreeformLabel FROM GMPLS-TC-STD-MIB -- [GMPLSTCMIB] mplsStdMIB FROM MPLS-TC-STD-MIB -- [RFC3811] ; gmplsLabelStdMIB MODULE-IDENTITY LAST-UPDATED "200410080001Z" -- 8 October 2004 00:00:01 GMT ORGANIZATION "Common Control And Measurement Plane (CCAMP) Working Group" CONTACT-INFO " Thomas D. Nadeau Cisco Systems, Inc. Email: tnadeau@cisco.com Adrian Farrel Old Dog Consulting Email: adrian@olddog.co.uk Comments about this document should be emailed direct to the CCAMP working group mailing list at ccamp@ops.ietf.org" DESCRIPTION "Copyright (C) The Internet Society (2004). The initial version of this MIB module was published in RFC xxxx. For full legal notices see the RFC itself or see: http://www.ietf.org/copyrights/ianamib.html This MIB module contains managed object definitions for labels within GMPLS systems as defined in: Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." -- Revision history. REVISION "200410080001Z" -- 8 October 2004 00:00:01 GMT DESCRIPTION "Initial version issued as part of RFC XXXX." ::= { mplsStdMIB xx } -- Top level components of this MIB module. -- Notifications -- no notifications are currently defined. gmplsLabelNotifications OBJECT IDENTIFIER ::= { gmplsLabelStdMIB 0 } -- Tables, Scalars gmplsLabelObjects OBJECT IDENTIFIER ::= { gmplsLabelStdMIB 1 } -- Conformance gmplsLabelConformance OBJECT IDENTIFIER ::= { gmplsLabelStdMIB 2 } -- GMPLS Label Table. gmplsLabelIndexNext OBJECT-TYPE SYNTAX IndexIntegerNextFree MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an unused value for gmplsLabelIndex, or a zero to indicate that no unused value exists or is available. An management application wishing to create a row in the gmplsLabelTable may read this object and then attempt to create a row in the table. If row creation fails (because another application has already created a row with the supplied index) the management application should read this object again to get a new index value. When a row is created in the gmplsLabelTable with the gmplsLabelIndex value held by this object, an implementation MUST change the value in this object." ::= { gmplsLabelObjects 1 } gmplsLabelTable OBJECT-TYPE SYNTAX SEQUENCE OF GmplsLabelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of GMPLS Labels. This table allows the representation of the more complex label forms required for GMPLS which cannot be held within the textual convention MplsLabel. That is labels that cannot be encoded within 32 bits. It is, nevertheless also capable of holding 32 bit labels or regular MPLS labels if desired. Each entry in this table represents an individual GMPLS label value. Labels in the tables in other MIBs are referred to using row pointer into this table. The indexing of this table provides for arbitrary indexing and also for concatenation of labels." ::= { gmplsLabelObjects 2 } gmplsLabelEntry OBJECT-TYPE SYNTAX GmplsLabelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents a single label value. There are three indexes into the table. - The interface index may be helpful to distinguish which labels are in use on which interfaces or to handle cases where there are a very large number of labels in use in the system. When label representation is desired to apply to the whole system or when it is not important to distinguish labels by their interfaces, this index MAY be set to zero. - The label index provides a way of identifying the label. - The label sub-index is only used for concatenated labels. It identifies each component label. When non-concatenated labels are used, this index SHOULD be set to zero. A storage type object is supplied to control the storage type for each entry, but implementations should note that the storage type of conceptual rows in other tables that include row pointers to an entry in this table SHOULD dictate the storage type of the rows in this table where the row in the other table is more persistent." INDEX { gmplsLabelInterface, gmplsLabelIndex, gmplsLabelSubindex } ::= { gmplsLabelTable 1 } GmplsLabelEntry ::= SEQUENCE { gmplsLabelInterface InterfaceIndexOrZero, gmplsLabelIndex Unsigned32, gmplsLabelSubindex Unsigned32, gmplsLabelType GmplsGeneralizedLabelTypes, gmplsLabelMplsLabel MplsLabel, gmplsLabelPortWavelength Unsigned32, gmplsLabelFreeform GmplsFreeformLabel, gmplsLabelSonetSdhSignalIndex Integer32, gmplsLabelSdhVc Integer32, gmplsLabelSdhVcBranch Integer32, gmplsLabelSonetSdhBranch Integer32, gmplsLabelSonetSdhGroupBranch Integer32, gmplsLabelWavebandId Unsigned32, gmplsLabelWavebandStart Unsigned32, gmplsLabelWavebandEnd Unsigned32, gmplsLabelRowStatus RowStatus, gmplsLabelStorageType StorageType } gmplsLabelInterface OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "The interface on which this label is used. If the label has or could have applicability across the whole system, this object SHOULD be set to zero." ::= { gmplsLabelEntry 1 } gmplsLabelIndex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary index into the table to identify a label. Note that implementations that are representing 32 bit labels within this table MAY choose to align this index with the value of the label, but should be aware of the implications of sparsely populated tables. A management application may read the gmplsLabelIndexNext object to find a suitable value for this object." ::= { gmplsLabelEntry 2 } gmplsLabelSubindex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "In conjunction with gmplsLabelInterface and gmplsLabelIndex, this object uniquely identifies this row. This sub-index allows a single GMPLS label to be defined as a concatenation of labels. This is particularly useful in TDM. The ordering of sub-labels is strict with the sub-label with lowest gmplsLabelSubindex appearing first. Note that all sub-labels of a single GMPLS label must share the same gmplsLabelInterface and gmplsLabelIndex values. For labels that are not composed of concatenated sub-labels, this value SHOULD be set to zero." ::= { gmplsLabelEntry 3 } gmplsLabelType OBJECT-TYPE SYNTAX GmplsGeneralizedLabelTypes MAX-ACCESS read-create STATUS current DESCRIPTION "Identifies the type of this label. Note that this object does not determine whether MPLS or GMPLS signaling is in use: a value of gmplsMplsLabel (1) denotes that a 23 bit MPLS packet label is present, but does not describe whether this is signaled using MPLS or GMPLS. The value of this object helps determine which of the following objects are valid. This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." ::= { gmplsLabelEntry 4 } gmplsLabelMplsLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-create STATUS current DESCRIPTION "The value of an MPLS label (that is a packet label) if this table is used to store it. This may be used in MPLS systems even though the label values can be adequately stored in the MPLS MIB modules. Further, in mixed MPLS and GMPLS systems it may be advantageous to store all labels in a single label table. Lastly, in GMPLS systems where packet labels are used (that is in systems that use GMPLS signaling and GMPLS labels for packet switching) it may be desirable to use this table. This object is only valid if gmplsLabelType is set to gmplsMplsLabel (1). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "MPLS Label Stack Encoding, Rosen, E. et al, RFC 3032, January 2001." DEFVAL { 0 } ::= { gmplsLabelEntry 6 } gmplsLabelPortWavelength OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The value of a Port or Wavelength Label when carried as a Generalized Label. Only valid if gmplsLabelType is set to gmplsPortWavelengthLabel(2). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." DEFVAL { 0 } ::= { gmplsLabelEntry 7 } gmplsLabelFreeform OBJECT-TYPE SYNTAX GmplsFreeformLabel MAX-ACCESS read-create STATUS current DESCRIPTION "The value of a freeform Generalized Label that does not conform to one of the standardized label encoding or that an implementation chooses to represent as an octet string without further decoding. Only valid if gmplsLabelType is set to gmplsFreeformGeneralizedLabel(3). This object cannot be modified if gmplsLabelRowStatus is active(1)." ::= { gmplsLabelEntry 8 } gmplsLabelSonetSdhSignalIndex OBJECT-TYPE SYNTAX Integer32 (0..4095) MAX-ACCESS read-create STATUS current DESCRIPTION "The Signal Index value (S) of a SONET or SDH Generalized Label. Zero indicates that this field is not significant. Only valid if gmplsLabelType is set to gmplsSonetLabel(4) or gmplsSdhLabel(5). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching Extensions for SONET and SDH Control, Mannie, E., Papadimitriou, D. (Editors), draft-ietf-ccamp-gmpls-sonet-sdh-08.txt, February 2003, work in progress." DEFVAL { 0 } ::= { gmplsLabelEntry 9 } gmplsLabelSdhVc OBJECT-TYPE SYNTAX Integer32 (0..15) MAX-ACCESS read-create STATUS current DESCRIPTION "The VC Indicator (U) of an SDH Generalized Label. Zero indicates that this field is non-significant. Only valid if gmplsLabelType is set to gmplsSdhLabel(5). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching Extensions for SONET and SDH Control, Mannie, E., Papadimitriou, D. (Editors), draft-ietf-ccamp-gmpls-sonet-sdh-08.txt, February 2003, work in progress." DEFVAL { 0 } ::= { gmplsLabelEntry 10 } gmplsLabelSdhVcBranch OBJECT-TYPE SYNTAX Integer32 (0..15) MAX-ACCESS read-create STATUS current DESCRIPTION "The VC Branch Indicator (K) of an SDH Generalized Label. Zero indicates that this field is non-significant. Only valid if gmplsLabelType is set to gmplsSdhLabel(5). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching Extensions for SONET and SDH Control, Mannie, E., Papadimitriou, D. (Editors), draft-ietf-ccamp-gmpls-sonet-sdh-08.txt, February 2003, work in progress." DEFVAL { 0 } ::= { gmplsLabelEntry 11 } gmplsLabelSonetSdhBranch OBJECT-TYPE SYNTAX Integer32 (0..15) MAX-ACCESS read-create STATUS current DESCRIPTION "The Branch Indicator (L) of a SONET or SDH Generalized Label. Zero indicates that this field is non-significant. Only valid gmplsLabelType is set to gmplsSonetLabel(4) or gmplsSdhLabel(5). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching Extensions for SONET and SDH Control, Mannie, E., Papadimitriou, D. (Editors), draft-ietf-ccamp-gmpls-sonet-sdh-08.txt, February 2003, work in progress." DEFVAL { 0 } ::= { gmplsLabelEntry 12 } gmplsLabelSonetSdhGroupBranch OBJECT-TYPE SYNTAX Integer32 (0..15) MAX-ACCESS read-create STATUS current DESCRIPTION "The Group Branch Indicator (M) of a SONET or SDH Generalized Label. Zero indicates that this field is non-significant. Only valid if gmplsLabelType is set to gmplsSonetLabel(4) or gmplsSdhLabel(5). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching Extensions for SONET and SDH Control, Mannie, E., Papadimitriou, D. (Editors), draft-ietf-ccamp-gmpls-sonet-sdh-08.txt, February 2003, work in progress." DEFVAL { 0 } ::= { gmplsLabelEntry 13 } gmplsLabelWavebandId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The waveband identifier component of a waveband label. Only valid if gmplsLabelType is set to gmplsWavebandLabel(6). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." DEFVAL { 0 } ::= { gmplsLabelEntry 14 } gmplsLabelWavebandStart OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The starting label component of a waveband label. Only valid if gmplsLabelType is set to gmplsWavebandLabel(6). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." DEFVAL { 0 } ::= { gmplsLabelEntry 15 } gmplsLabelWavebandEnd OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The end label component of a waveband label. Only valid if gmplsLabelType is set to gmplsWavebandLabel(6). This object cannot be modified if gmplsLabelRowStatus is active(1)." REFERENCE "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description, Berger, L. (Editor), RFC 3471, January 2003." DEFVAL { 0 } ::= { gmplsLabelEntry 16 } gmplsLabelRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table. When a row in this table has a row in the active(1) state, no objects in this row can be modified except the gmplsLabelRowStatus and gmplsLabelStorageType." ::= { gmplsLabelEntry 17 } gmplsLabelStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object. The agent MUST ensure that this object's value remains consistent with the storage type of any rows in other tables that contain pointers to this row. In particular, the storage type of this row must be at least as permanent as that of any row that point to it. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row." REFERENCE "See RFC2579." DEFVAL { volatile } ::= { gmplsLabelEntry 18 } -- End of GMPLS Label Table -- Module compliance. gmplsLabelGroups OBJECT IDENTIFIER ::= { gmplsLabelConformance 1 } gmplsLabelCompliances OBJECT IDENTIFIER ::= { gmplsLabelConformance 2 } gmplsLabelModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for agents that support the GMPLS Label MIB module." MODULE -- this module -- The mandatory groups have to be implemented by LSRs claiming -- support for this MIB module. This MIB module is, however, not -- mandatory for a working implementation of a GMPLS LSR with full -- MIB support if the GMPLS labels in use can be represented within -- a 32 bit quantity. MANDATORY-GROUPS { gmplsLabelTableGroup } -- Units of conformance. GROUP gmplsLabelTableGroup DESCRIPTION "This group is mandatory for devices which support the gmplsLabelTable." GROUP gmplsLabelPacketGroup DESCRIPTION "This group extends gmplsLabelTableGroup for implementations that support packet labels." GROUP gmplsLabelPortWavelengthGroup DESCRIPTION "This group extends gmplsLabelTableGroup for implementations that support port and wavelength labels." GROUP gmplsLabelFreeformGroup DESCRIPTION "This group extends gmplsLabelTableGroup for implementations that support freeform labels." GROUP gmplsLabelSonetSdhGroup DESCRIPTION "This group extends gmplsLabelTableGroup for implementations that support SONET or SDH labels." GROUP gmplsLabelWavebandGroup DESCRIPTION "This group extends gmplsLabelTableGroup for implementations that support Waveband labels." -- gmplsLabelTable OBJECT gmplsLabelType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelMplsLabel MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelPortWavelength MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelFreeform MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelSonetSdhSignalIndex MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelSdhVc MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelSdhVcBranch MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelSonetSdhBranch MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelSonetSdhGroupBranch MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelWavebandId MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelWavebandStart MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelWavebandEnd MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT gmplsLabelRowStatus SYNTAX RowStatus { active(1), notInService(2) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } DESCRIPTION "Support for notInService, createAndWait and notReady is not required." OBJECT gmplsLabelStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { gmplsLabelCompliances 1 } -- Units of conformance. gmplsLabelTableGroup OBJECT-GROUP OBJECTS { gmplsLabelIndexNext, gmplsLabelType, gmplsLabelRowStatus, gmplsLabelStorageType } STATUS current DESCRIPTION "Necessary, but not sufficient, set of objects to implement label table support. In addition, depending on the type of labels supported (for example, wavelength labels), the following other groups defined below are mandatory: gmplsLabelPacketGroup and/or gmplsLabelPortWavelengthGroup and/or gmplsLabelFreeformGroup and/or gmplsLabelSonetSdhGroup." ::= { gmplsLabelGroups 1 } gmplsLabelPacketGroup OBJECT-GROUP OBJECTS { gmplsLabelMplsLabel } STATUS current DESCRIPTION "Object needed to implement Packet (MPLS) labels." ::= { gmplsLabelGroups 2 } gmplsLabelPortWavelengthGroup OBJECT-GROUP OBJECTS { gmplsLabelPortWavelength } STATUS current DESCRIPTION "Object needed to implement Port and Wavelength labels." ::= { gmplsLabelGroups 3 } gmplsLabelFreeformGroup OBJECT-GROUP OBJECTS { gmplsLabelFreeform } STATUS current DESCRIPTION "Object needed to implement Freeform labels." ::= { gmplsLabelGroups 4 } gmplsLabelSonetSdhGroup OBJECT-GROUP OBJECTS { gmplsLabelSonetSdhSignalIndex, gmplsLabelSdhVc, gmplsLabelSdhVcBranch, gmplsLabelSonetSdhBranch, gmplsLabelSonetSdhGroupBranch } STATUS current DESCRIPTION "Object needed to implement SONET and SDH labels." ::= { gmplsLabelGroups 5 } gmplsLabelWavebandGroup OBJECT-GROUP OBJECTS { gmplsLabelWavebandId, gmplsLabelWavebandStart, gmplsLabelWavebandEnd } STATUS current DESCRIPTION "Object needed to implement Waveband labels." ::= { gmplsLabelGroups 6 } END -- -- Copyright (C) The Internet Society (2004). This document is subject -- to the rights, licenses and restrictions contained in BCP 78, and -- except as set forth therein, the authors retain all their rights. -- -- This document and the information contained herein are provided on an -- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS -- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET -- ENGINEERING TASK FORCE DISCLAIM 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. --