GMPLS DCSC: Generalized MPLS (GMPLS) Data Channel Switching Capable (DCSC) and Channel Set Label Extensions
A new GMPLS switching type for whole-channel ports and a label that names a whole set of channels at once.
Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Data Channel Switching Capable (DCSC) and Channel Set Label Extensions", RFC 6002, DOI 10.17487/RFC6002, October 2010, <https://www.rfc-editor.org/info/rfc6002>.
@misc{rfc6002,
series = {Request for Comments},
number = 6002,
howpublished = {RFC 6002},
publisher = {RFC Editor},
doi = {10.17487/RFC6002},
url = {https://www.rfc-editor.org/info/rfc6002},
author = {L. Berger and D. Fedyk},
title = {{Generalized MPLS (GMPLS) Data Channel Switching Capable (DCSC) and Channel Set Label Extensions}},
pagetotal = 10,
year = 2010,
month = oct,
} RFC text
Contents
Internet Engineering Task Force (IETF) L. Berger
Request for Comments: 6002 LabN
Updates: 3471, 3473, 3945, 4202, 4203, 5307 D. Fedyk
Category: Standards Track Alcatel-Lucent
ISSN: 2070-1721 October 2010
Generalized MPLS (GMPLS) Data Channel Switching Capable (DCSC)
and Channel Set Label Extensions
Abstract
This document describes two technology-independent extensions to
Generalized Multi-Protocol Label Switching (GMPLS). The first
extension defines the new switching type Data Channel Switching
Capable. Data Channel Switching Capable interfaces are able to
support switching of the whole digital channel presented on single
channel interfaces. The second extension defines a new type of
generalized label and updates related objects. The new label is
called the Generalized Channel_Set Label and allows more than one
data plane label to be controlled as part of a Label Switched Path
(LSP).
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6002.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction ....................................................2
1.1. Conventions Used in This Document ..........................3
2. Data Channel Switching ..........................................3
2.1. Compatibility ..............................................4
3. Generalized Channel_Set Label Related Formats ...................4
3.1. Generalized Channel_Set LABEL_REQUEST Object ...............4
3.2. Generalized Channel_Set LABEL Object .......................4
3.3. Other Label-Related Objects ................................7
3.4. Compatibility ..............................................7
4. IANA Considerations .............................................8
4.1. Data Channel Switching Type ................................8
4.2. Generalized Channel_Set LABEL_REQUEST Object ...............8
4.3. Generalized Channel_Set LABEL Object .......................8
5. Security Considerations .........................................9
6. References ......................................................9
6.1. Normative References .......................................9
6.2. Informative References ....................................10
Acknowledgments ...................................................10
1. Introduction
This document describes two technology-independent extensions to
Generalized Multi-Protocol Label Switching (GMPLS). Both of these
extensions were initially defined in the context of Ethernet
services, see [RFC6004] and [RFC6005], but are generic in nature and
may be useful to any switching technology controlled via GMPLS.
The first extension defines a new switching type, which is called
Data Channel Switching Capable (DCSC). DCSC interfaces are able to
support switching of the whole digital channel presented on single
channel interfaces. The second extension defines a new type of
generalized label and updates related objects. The new label is
called the Generalized Channel_Set Label and allows more than one
data plane label to be controlled as part of a GMPLS Label Switched
Path (LSP).
1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Data Channel Switching
Current GMPLS switching types are defined in [RFC3945] and [RFC3471]
and support switching at the packet (PSC), frame (L2SC), time-slot
(TDM), frequency (LSC), and fiber (FSC) granularities. Parallel
definitions for these switching types are also made in [RFC4202],
[RFC4203], and [RFC5307].
One type of switching that is not well represented in this current
set is switching that occurs when all data received on an ingress
port is switched through a network to an egress port. While there
are similarities between this level of switching and the "opaque
single wavelength" case, described in Section 3.5 of [RFC4202], such
port-to-port switching is not limited to the optical switching
technology implied by the LSC type. FSC is also similar, but it is
restricted to fiber ports and also supports multiple data channels
within a fiber port.
This document defines a new switching type called Data Channel
Switching Capable (DCSC). Port switching seems a more intuitive
name, but this naming collides with PSC so is not used. DCSC
interfaces are able to support switching of the whole digital channel
presented on single channel interfaces. Interfaces that inherently
support multiple channels, e.g., Wavelength Division Multiplexing
(WDM) and channelized TDM interfaces, are specifically excluded from
this type. Any interface that can be represented as a single digital
channel are included. Examples include concatenated TDM and line-
encoded interfaces. Framed interfaces may also be included when they
support switching on an interface granularity, for example Ethernet
terminated at the physical (port) level and all traffic received on a
port is switched to a physical port at the LSP egress.
DCSC is represented in GMPLS, see [RFC3471] and [RFC4202], using the
value 125. The DCSC value is carried in routing protocols in the
Interface Switching Capability Descriptor defined in [RFC4202], and
used in OSPF [RFC4203] and IS-IS [RFC5307]. These documents are not
otherwise modified by this document.
The DCSC Switching Type may be used with the Generalized Label
Request object, [RFC3473], or the Generalized Channel_Set
LABEL_REQUEST object defined below. Port labels, as defined in
[RFC3471], SHOULD be used for LSPs signaled using the DCSC Switching
Type.
2.1. Compatibility
Transit and egress nodes that do not support the DCSC Switching Type
when receiving a Path message with a Label Request containing the
DCSC Switching Type will behave in the same way nodes generally
handle the case of an unsupported Switching Type. Specifically, per
[RFC3473], such nodes are required to generate a PathErr message,
with a "Routing problem/Unsupported Encoding" indication.
Ingress nodes initiating a Path message containing a Label Request
containing the DCSC Switching Type, receiving such a PathErr
messages, then notify the requesting application user as appropriate.
3. Generalized Channel_Set Label Related Formats
This section defines a new type of generalized label and updates
related objects. This section updates the label-related definitions
of [RFC3473]. The ability to communicate more than one label as part
of the same LSP was motivated by the support for the communication of
one or more VLAN IDs. Simple concatenation of labels as is done in
[RFC4606] was deemed impractical given the large number of VLAN IDs
(up to 4096) that may need to be communicated. The formats defined
in this section are not technology specific and may be useful for
other switching technologies. The LABEL_SET object defined in
[RFC3473] serves as the foundation for the defined formats.
3.1. Generalized Channel_Set LABEL_REQUEST Object
The Generalized Channel_Set LABEL_REQUEST object is used to indicate
that the Generalized Channel_Set LABEL object is to be used with the
associated LSP. The format of the Generalized Channel_Set
LABEL_REQUEST object is the same as the Generalized LABEL_REQUEST
object and uses a C-Type of 5.
3.2. Generalized Channel_Set LABEL Object
The Generalized Channel_Set LABEL Object communicates one or more
labels, all of which can be used equivalently in the data path
associated with a single LSP. The format of the Generalized
Channel_Set LABEL Object is based on the LABEL_SET object defined in
[RFC3473]. It differs from the LABEL_SET object in that the full set
may be represented in a single object rather than the multiple
objects required by the [RFC3473] LABEL_SET object. The object MUST
be used on LSPs that use the Generalized Channel_Set LABEL_REQUEST
object. The object MUST be processed per [RFC3473]. Make-before-
break procedures, see [RFC3209], SHOULD be used when modifying the
Channel_Set LABEL object.
The format of the Generalized Channel_Set LABEL object is:
o Generalized Channel_Set LABEL object: Class = 16, C-Type = 4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Channel_Set Subobject 1 |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: : :
: : :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Channel_Set Subobject N |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Channel_Set Subobject size is measured in bytes and MUST always
be a multiple of 4, and at least 4, and has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Action | Num Subchannels | Label Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Subchannel 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ :
: : :
: : :
: : :
: : :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Subchannel N |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Action: 8 bits
See [RFC3471] for definition of actions. Range actions SHOULD be
used when possible to minimize the size of the Channel_Set LABEL
Object.
Number of Subchannels: 10 bits
Indicates the number of subchannels carried in the subobject.
When the number of subchannels required exceeds the limit of the
field, i.e., 1024, multiple Channel_Set Subobjects MUST be used.
Note that the size of the subobject may result in a Path message
being larger than a single unfragmented IP packet. See Section
4.4 of [RFC6004] for an example of how this case may be handled.
A value of zero (0) has special meaning and MAY be used in either
the LABEL or UPSTREAM_LABEL object. A value of zero (0) is used
in a LABEL or UPSTREAM_LABEL object to indicate that the
subchannel(s) used in the corresponding (downstream or upstream)
direction MUST match the subchannel(s) carried in the reverse
directions label object. When value of zero (0) is used, no
subchannels are included in the Channel_Set Subobject and only one
Channel_Set Subobject may be present. The zero (0) value MUST NOT
be used in both the LABEL and UPSTREAM_LABEL objects of the same
LSP. Note that unacceptable label values continue to be handled
according to [RFC3209] and [RFC3473], i.e., they result in PathErr
or ResvErr messages with a "Routing problem/Unacceptable label
value" indication. For example, in the case where a Resv message
containing a zero (0) in both the LABEL and UPSTREAM_LABEL objects
is received, the node would generate a ResvErr message.
Label Type: 14 bits
See [RFC3473] for a description of this field.
Subchannel: Variable
See [RFC3471] for a description of this field. Note that this
field might not be 32-bit aligned.
Padding: Variable
Padding is used to ensure that the length of a Channel_Set
Subobject meets the multiple of 4 byte size requirement stated
above. The field is only required when the Subchannel field is
not 32-bit aligned and the number of included Subchannel fields
result in the Subobject not being 32-bit aligned.
The Padding field MUST be included when the number of bits
represented in all the Subchannel fields included in a Generalized
Channel_Set Subobject result in the Subobject not being 32-bit
aligned. When present, the Padding field MUST have a length that
results in the Subobject being 32-bit aligned. When present, the
Padding field MUST be set to a zero (0) value on transmission and
MUST be ignored on receipt. These bits SHOULD be passed through
unmodified by transit nodes.
Note that the overall length of a Channel_Set Subobject is
determined based on the value of the Num Subchannels field
together with the size of each Subchannel field as well as any
required padding. The size of the Subchannel field is uniquely
identified by the Label Type field.
3.3. Other Label-Related Objects
The previous section introduced a new LABEL object. As such the
formats of the other label-related objects and subobjects are also
impacted. Processing of these objects and subobjects is not modified
and remains per their respective specifications. The other label
related objects and subobjects are defined in [RFC3473] and include:
- SUGGESTED_LABEL object
- LABEL_SET object
- ACCEPTABLE_LABEL_SET object
- UPSTREAM_LABEL object
- RECOVERY_LABEL object
- Label ERO subobject
- Label RRO subobject
The label-related objects and subobjects each contain a Label field,
all of which may carry any label type. As any label type may be
carried, the introduction of a new label type means that the new
label type may be carried in the Label field of each of the label-
related objects and subobjects. No new definition needs to specified
as their original specification is label-type agnostic.
3.4. Compatibility
Transit and egress nodes that do not support the Generalized
Channel_Set Label related formats will first receive a Path message
containing Generalized Channel_Set LABEL_REQUEST object. When such a
node receives the Path message, per [RFC3209], it will send a PathErr
with the error code "Unknown object C_Type".
Ingress nodes initiating a Path message containing a Generalized
Channel_Set LABEL_REQUEST object on receiving such a PathErr
messages, then notify the requesting application user as appropriate.
4. IANA Considerations
IANA has assigned new values for namespaces defined in this document
and summarized in this section. The registries are available from
http://www.iana.org.
4.1. Data Channel Switching Type
IANA has made the following assignment in the "Switching Types"
section of the "GMPLS Signaling Parameters" registry.
Value Type Reference
----- ------------------------------------ ---------
125 Data Channel Switching Capable (DCSC) [RFC6002]
The assigned value is reflected in IANAGmplsSwitchingTypeTC of the
IANA-GMPLS-TC-MIB available from http://www.iana.org.
4.2. Generalized Channel_Set LABEL_REQUEST Object
IANA has made the following assignment in the "Class Names, Class
Numbers, and Class Types" section of the "RSVP PARAMETERS" registry.
A new class type for the existing LABEL_REQUEST Object class number
(19) with the following definition:
Class Types or C-Types:
5 Generalized Channel_Set [RFC6002]
4.3. Generalized Channel_Set LABEL Object
IANA has made the following assignment in the "Class Names, Class
Numbers, and Class Types" section of the "RSVP PARAMETERS" registry.
A new class type for the existing RSVP_LABEL Object class number (16)
with the following definition:
Class Types or C-Types:
4 Generalized Channel_Set [RFC6002]
5. Security Considerations
This document introduces new message object formats for use in GMPLS
signaling [RFC3473]. It does not introduce any new signaling
messages, nor change the relationship between LSRs that are adjacent
in the control plane. As such, this document introduces no
additional security considerations. See [RFC3473] for relevant
security considerations. Additionally, the existing framework for
MPLS and GMPLS security is documented in [RFC5920].
6. References
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, December 2001.
[RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Functional Description", RFC
3471, January 2003.
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Resource ReserVation Protocol-
Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
January 2003.
[RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Architecture", RFC 3945, October 2004.
[RFC4202] Kompella, K., Ed., and Y. Rekhter, Ed., "Routing
Extensions in Support of Generalized Multi-Protocol Label
Switching (GMPLS)", RFC 4202, October 2005.
[RFC4203] Kompella, K., Ed., and Y. Rekhter, Ed., "OSPF Extensions
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 4203, October 2005.
[RFC5307] Kompella, K., Ed., and Y. Rekhter, Ed., "IS-IS Extensions
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 5307, October 2008.
6.2. Informative References
[RFC4606] Mannie, E. and D. Papadimitriou, "Generalized Multi-
Protocol Label Switching (GMPLS) Extensions for
Synchronous Optical Network (SONET) and Synchronous
Digital Hierarchy (SDH) Control", RFC 4606, August 2006.
[RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS
Networks", RFC 5920, July 2010.
[RFC6004] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support
for Metro Ethernet Forum and G.8011 Ethernet Service
Switching", RFC 6004, October 2010.
[RFC6005] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support
for Metro Ethernet Forum and G.8011 User Network Interface
(UNI)", RFC 6005, October 2010.
Acknowledgments
Dimitri Papadimitriou provided substantial textual contributions to
this document and coauthored earlier versions of this document.
The authors would like to thank Evelyne Roch, Stephen Shew, and
Adrian Farrel for their valuable comments.
Authors' Addresses
Lou Berger
LabN Consulting, L.L.C.
Phone: +1-301-468-9228
EMail: lberger@labn.net
Don Fedyk
Alcatel-Lucent
Groton, MA, 01450
Phone: +1-978-467-5645
EMail: donald.fedyk@alcatel-lucent.com
AI ELI5
On this page
§1Two Generic GMPLS Extensions
RFC 6002 describes two technology-independent extensions to Generalized MPLS (GMPLS). Both were first defined for Ethernet services (see RFC 6004 and RFC 6005), but are generic and may help any switching technology controlled by GMPLS.
The first is a new switching type, Data Channel Switching Capable (DCSC), for interfaces that switch the whole digital channel presented on a single-channel interface. The second is a new generalized label, the Generalized Channel_Set Label, which lets more than one data plane label be controlled as part of one Label Switched Path (LSP).
There are two new ideas. One names a kind of switch that moves a whole plug at a time. The other lets you write one label that covers many channels.
§2Data Channel Switching Capable
Existing GMPLS switching types cover packet (PSC), frame (L2SC), time-slot (TDM), frequency (LSC) and fiber (FSC) granularity. Missing was switching where all data received on an ingress port is switched through the network to an egress port. It resembles the opaque single wavelength case in RFC 4202, but is not limited to optical technology. FSC is similar but limited to fiber ports and supports several channels per fiber.
DCSC fills the gap. The RFC notes that 'port switching' would be a more intuitive name but collides with PSC. Interfaces that inherently carry multiple channels, such as WDM and channelized TDM, are excluded. Anything that can be seen as one digital channel is included, for example concatenated TDM, line-encoded interfaces, or Ethernet terminated at the port level where all traffic on a port goes to a physical port at the LSP egress.
DCSC uses the value 125. It travels in the Interface Switching Capability Descriptor used by OSPF (RFC 4203) and IS-IS (RFC 5307), which are not otherwise changed. It may be used with the Generalized Label Request object of RFC 3473 or the Generalized Channel_Set LABEL_REQUEST object below, and port labels SHOULD be used for DCSC LSPs.
Imagine a switchboard that moves a whole plug instead of single wires inside it. DCSC is the name for that kind of switch.
§3The Channel_Set Label Objects
The motivation was carrying one or more VLAN IDs. Simply concatenating labels, as RFC 4606 does, was judged impractical given up to 4096 VLAN IDs. The LABEL_SET object of RFC 3473 is the foundation, but the Channel_Set label puts the full set in one object instead of many.
The Generalized Channel_Set LABEL_REQUEST object has the same format as the Generalized LABEL_REQUEST object and uses C-Type 5. It signals that the Channel_Set LABEL object is to be used. The Generalized Channel_Set LABEL object (Class 16, C-Type 4) carries one or more labels that can all be used equivalently in the data path of one LSP. It MUST be used on LSPs that use the Channel_Set LABEL_REQUEST, and it is processed per RFC 3473. Make-before-break procedures SHOULD be used when modifying it.
The other label objects and subobjects from RFC 3473 (SUGGESTED_LABEL, LABEL_SET, ACCEPTABLE_LABEL_SET, UPSTREAM_LABEL, RECOVERY_LABEL and the Label ERO and RRO subobjects) can carry the new label type without redefinition, because they are label-type agnostic.
Instead of mailing a hundred separate tickets, you send one envelope with a list of all the seats you can use.
§4The Channel_Set Subobject
The label object holds Channel_Set subobjects. Each subobject is a multiple of 4 bytes, at least 4, and has these fields: Action (8 bits), Number of Subchannels (10 bits), Label Type (14 bits), the subchannels, and any padding.
Range actions SHOULD be used when possible to keep the object small. Since 10 bits limit the count to 1024, more subchannels need several subobjects, which may make a Path message larger than one unfragmented IP packet.
A count of zero is special in a LABEL or UPSTREAM_LABEL object. It means the subchannels in that direction MUST match those in the reverse direction's label object. No subchannels are included and only one subobject may be present. Zero MUST NOT be used in both objects of the same LSP; a Resv with zero in both gets a ResvErr.
Padding is needed only if the subchannels leave the subobject not 32-bit aligned. It MUST make the subobject aligned, MUST be zero on transmission and ignored on receipt, and SHOULD be passed through unmodified by transit nodes. The Label Type field uniquely identifies the size of each subchannel.
Each list in the envelope says what to do, how many items it has, and what kind they are. Blank space at the end just fills it out to a neat size.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
ACTION | Action | 1 byte | Action as defined in RFC 3471; range actions keep the object small. | |
NUM-SUBCHANNELS | Num Subchannels | 10 bits | Number of subchannels in this subobject; zero is special. | |
LABEL-TYPE | Label Type | 14 bits | Label type; fixes the size of each subchannel. |
§5Handling Unsupported Nodes
A transit or egress node that does not support DCSC treats it like any unsupported switching type. Per RFC 3473 it MUST send a PathErr with 'Routing problem/Unsupported Encoding'. A node that does not support the Channel_Set formats answers the Channel_Set LABEL_REQUEST with a PathErr 'Unknown object C_Type', per RFC 3209. In both cases the ingress node then notifies the requesting application user as appropriate.
If a node does not know the new words, it politely sends back an error note, and the sender tells whoever asked.
§6IANA Assignments
IANA assigned value 125, Data Channel Switching Capable (DCSC), in the Switching Types section of the GMPLS Signaling Parameters registry. In the RSVP PARAMETERS registry it assigned C-Type 5 (Generalized Channel_Set) under the LABEL_REQUEST class number 19, and C-Type 4 (Generalized Channel_Set) under the RSVP_LABEL class number 16.
The official list keeper wrote the new numbers in its book.
§7Security Considerations
The RFC adds new object formats to GMPLS signaling but no new messages and no change to the relationship between adjacent LSRs. It therefore adds no security considerations. The text points to RFC 3473 for the relevant ones and to RFC 5920 for the MPLS and GMPLS security framework.
Nothing new here is risky by itself, so the old safety rules still apply.