diff options
Diffstat (limited to 'doc/rfc/rfc6601.txt')
-rw-r--r-- | doc/rfc/rfc6601.txt | 1907 |
1 files changed, 1907 insertions, 0 deletions
diff --git a/doc/rfc/rfc6601.txt b/doc/rfc/rfc6601.txt new file mode 100644 index 0000000..edb6d67 --- /dev/null +++ b/doc/rfc/rfc6601.txt @@ -0,0 +1,1907 @@ + + + + + + +Internet Engineering Task Force (IETF) G. Ash, Ed. +Request for Comments: 6601 AT&T +Category: Experimental D. McDysan +ISSN: 2070-1721 Verizon + April 2012 + + + Generic Connection Admission Control (GCAC) Algorithm Specification + for IP/MPLS Networks + +Abstract + + This document presents a generic connection admission control (GCAC) + reference model and algorithm for IP-/MPLS-based networks. Service + provider (SP) IP/MPLS networks need an MPLS GCAC mechanism, as one + motivational example, to reject Voice over IP (VoIP) calls when + additional calls would adversely affect calls already in progress. + Without MPLS GCAC, connections on congested links will suffer + degraded quality. The MPLS GCAC algorithm can be optionally + implemented in vendor equipment and deployed by service providers. + MPLS GCAC interoperates between vendor equipment and across multiple + service provider domains. The MPLS GCAC algorithm uses available + standard mechanisms for MPLS-based networks, such as RSVP, Diffserv- + aware MPLS Traffic Engineering (DS-TE), Path Computation Element + (PCE), Next Steps in Signaling (NSIS), Diffserv, and OSPF. The MPLS + GCAC algorithm does not include aspects of CAC that might be + considered vendor proprietary implementations, such as detailed path + selection mechanisms. MPLS GCAC functions are implemented in a + distributed manner to deliver the objective Quality of Service (QoS) + for specified QoS constraints. The objective is that the source is + able to compute a source route with high likelihood that via-elements + along the selected path will in fact admit the request. In some + cases (e.g., multiple Autonomous Systems (ASes)), this objective + cannot always be met, but this document summarizes methods that + partially meet this objective. MPLS GCAC is applicable to any + service or flow that must meet an objective QoS (delay, jitter, + packet loss rate) for a specified quantity of traffic. + + + + + + + + + + + + + + +Ash & McDysan Experimental [Page 1] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. 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). Not + all documents approved by the IESG are a candidate for any level of + Internet Standard; see 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/rfc6601. + +Copyright Notice + + Copyright (c) 2012 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. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + + + + + + + +Ash & McDysan Experimental [Page 2] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +Table of Contents + + 1. Introduction ....................................................4 + 1.1. Conventions Used in This Document ..........................5 + 2. MPLS GCAC Reference Model and Algorithm Summary .................6 + 2.1. Inputs to MPLS GCAC ........................................8 + 2.2. MPLS GCAC Algorithm Summary ................................9 + 3. MPLS GCAC Algorithm ............................................12 + 3.1. Bandwidth Allocation Parameters ...........................12 + 3.2. GCAC Algorithm ............................................15 + 4. Security Considerations ........................................18 + 5. Acknowledgements ...............................................20 + 6. Normative References ...........................................20 + 7. Informative References .........................................21 + Appendix A: Example MPLS GCAC Implementation Including Path + Selection, Bandwidth Management, QoS Signaling, and + Queuing ...............................................24 + A.1 Example of Path Selection and Bandwidth Management + Implementation .............................................26 + A.2 Example of QoS Signaling Implementation ....................32 + A.3 Example of Queuing Implementation ..........................34 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Ash & McDysan Experimental [Page 3] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +1. Introduction + + This document presents a generic connection admission control (GCAC) + reference model and algorithm for IP-/MPLS-based networks. Service + provider (SP) IP/MPLS networks need an MPLS GCAC mechanism, as one + motivational example, to reject Voice over IP (VoIP) calls when + additional calls would adversely affect calls already in progress. + Without MPLS GCAC, connections on congested links will suffer + degraded quality. Given the capital constraints in some SP networks, + over-provisioning is not acceptable. MPLS GCAC supports all access + technologies, protocols, and services while meeting performance + objectives with a cost-effective solution and operates across routing + areas, autonomous systems, and service provider boundaries. + + This document defines an MPLS GCAC reference model, algorithm, and + functions implemented in one or more types of network elements in + different domains that operate together in a distributed manner to + deliver the objective QoS for specified QoS constraints, such as + bandwidth. With MPLS GCAC, the source router/server is able to + compute a source route with high likelihood that via-elements along + the selected path will in fact admit the request. MPLS GCAC includes + nested CAC actions, such as RSVP aggregation, nested RSVP - Traffic + Engineering (RSVP-TE) for scaling between provider edge (PE) routers, + and pseudowire (PW) CAC within traffic-engineered tunnels. MPLS GCAC + focuses on MPLS and PW-level CAC functions, rather than application- + level CAC functions. + + MPLS GCAC is applicable to any service or flow that must meet an + objective QoS (latency, delay variation, loss) for a specified + quantity of traffic. This would include, for example, most real- + time/RTP services (voice, video, etc.) as well as some non-real-time + services. Real-time/RTP services are typically interactive, + relatively persistent traffic flows. Other services subject to MPLS + GCAC could include, for example, manually provisioned label switched + paths (LSPs) or PWs and automatic bandwidth assignment for + applications that automatically build LSP meshes among PE routers. + MPLS GCAC is applicable to both access and backbone networks, for + example, to slow-speed access networks and to broadband DSL, cable, + and fiber access networks. + + This document is Experimental. It is intended that service providers + and vendors experiment with the GCAC concept and the algorithm + described in this document in a controlled manner to determine the + benefits of such a mechanism. That is, they should first experiment + with the GCAC algorithm in their laboratories and test networks. + When testing in live networks, they should install the GCAC algorithm + on selected routers in only part of their network, and they should + + + + +Ash & McDysan Experimental [Page 4] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + carefully monitor the effects. The installation should be managed + such that the routers can quickly be switched back to normal + operation if any problem is seen. + + Since application of GCAC is most likely in Enterprise VPNs and/or + internal TE infrastructure, it is RECOMMENDED that the experiment be + conducted in such applications, and it is NOT RECOMMENDED that the + experiment be conducted in the Internet. If possible, the + experimental configuration will address interoperability issues, such + as, for example, the use of different constraint models across + different traffic domains. + + The experiment can monitor various measures of quality of service + before and after deployment of GCAC, particularly when the + experimental network is under stress during an overload or failure + condition. These quality-of-service measures might include, for + example, dropped packet rate and end-to-end packet delay. The + results of such experiments may be fed back to the IETF community to + refine this document and to move it to the Standards Track (probably + within the MPLS working group) if the experimental results are + positive. + + It should be noted that the algorithm might have negative effects on + live deployments if the experiment is a failure. Effects might + include blockage of traffic that would normally be handled or + congestion caused by allowing excessive traffic on a link. For these + reasons, experimentation in production networks needs to be treated + with caution as described above and should only be carried out after + successful simulation and experimentation in test environments. In + Section 2, we describe the MPLS GCAC reference model, and in Section + 3, we specify the MPLS GCAC algorithm based on the principles in the + reference model and requirements. Appendix A gives an example of + MPLS GCAC implementation including path selection, bandwidth + management, QoS signaling, and queuing implementation. + +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 RFC 2119 [RFC2119]. + + + + + + + + + + + +Ash & McDysan Experimental [Page 5] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +2. MPLS GCAC Reference Model and Algorithm Summary + + Figure 1 illustrates the reference model for the MPLS GCAC algorithm: + + ,-. ,-. + ,--+ `--+--'- --'\ + +----+_____+------+ { +----+ +----+ `. +------+ + |GEF1| | |______| P |___| P |______| | + | |-----| PE1 | { +----+ +----+ /+| PE2 | + | | | |==========================>| ASBR | + +-:--+ | |<==========================| | + _|..__ +------+ { DS-TE/MAR Tunnels ; +------+ + _,' \-| ./ -'._ !| + | Access \ / +----+ \, !| + | Network | \_ | P | | !| + | / `| +----+ / !| + `--. ,.__,| | IP/MPLS Network / !| + '`' '' ' .._,,'`.__ _/ '---' !| + | '`''' !| + C1 !| + ,-. ,-. !| + ,--+ `--+--'- --'\ !| + +----+_____+------+ { +----+ +----+ `. +------+ + |GEF2| | |______| P |___| P |______| | + | |-----| PE4 | { +----+ +----+ /+| PE3 | + | | | |==========================>| ASBR | + +-:--+ | |<==========================| | + _|..__ +------+ { DS-TE/MAM Tunnels ; +------+ + _,' \-| ./ -'._ + | Access \ / +----+ \, + | Network | \_ | P | | + | / `| +----+ / + `--. ,.__,| | IP/MPLS Network / + '`' '' ' .._,,'`.__ _/ '---' + | '`''' + C2 + + CUSTOMER I/F PARAMETERS: BW, QoS, CoS, priority + + NOTE: PE, P, ASBR, GEF elements all support GCFs + + + + + + + + + + + +Ash & McDysan Experimental [Page 6] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + LEGEND: + --------- + ASBR: Autonomous System Border Router + BW: bandwidth + CoS: class of service + DS-TE: Diffserv-aware MPLS Traffic Engineering + GCAC: generic connection admission control + GCF: GCAC core function + GEF: GCAC edge function + I/F: interface + MAM: Maximum Allocation Model + MAR: Maximum Allocation with Reservation + P: provider router + PE: provider edge router + --- connection signaling + ___ bearer/media flows + + Figure 1: MPLS GCAC Reference Model + + MPLS GCAC is applicable to any service or flow for which MPLS GCAC is + required to meet a given QoS. As such, the reference model applies + to most real-time/RTP services (voice, video, etc.) as well as some + non-real-time services. Real-time/RTP services are typically + interactive, relatively persistent traffic flows. Non-real-time + applications subject to MPLS GCAC could include, for example, + manually provisioned LSPs or PWs and automatic bandwidth assignment + for applications that automatically build LSP meshes among PE + routers. The reference model also applies to MPLS GCAC when MPLS is + used in access networks, which include, for example, slow-speed + access networks and broadband DSL, cable, and fiber access networks. + Endpoints will be IP/PBXs (Private Branch Exchanges) and individual- + usage SIP/RTP end devices (hard and soft SIP phones, Integrated + Access Devices (IADs)). This traffic will enter and leave the core + via possibly bandwidth-constrained access networks, which may also be + MPLS aware but may use some other admission control technology. + + The basic elements considered in the reference model are the MPLS + GCAC edge function (GEF), GCAC core functions (GCFs), the PE routers, + Autonomous System Border Routers (ASBRs), and provider (P) routers. + As illustrated in Figure 1, the GEF interfaces to the application at + the source and destination PE, and the GCF exists at the PE, P, and + ASBR routers. GEF has an end-to-end focus and deals with whether + individual connection requests fit within an MPLS tunnel, and GCF has + a hop-by-hop focus and deals with whether an MPLS tunnel can be + established across specific core network elements on a path. The GEF + functionality may be implemented in the PE, ASBR, or a stand-alone + network element. The source/destination routers (or external devices + + + + +Ash & McDysan Experimental [Page 7] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + through a router interface) support both GEF and GCF, while internal + routers (or external devices through a router interface) support GCF. + In Figure 1, the GEF handles both signaling and bearer control. + +2.1. Inputs to MPLS GCAC + + Inputs to the GEF and GCF include the following, where most are + inputs to both GEF and GCF, except as noted. Most of the parameters + apply to the specific flow/LSP being calculated, while some + parameters, such as request type, apply to the calculation method. + Required inputs are marked with (*); all other inputs are optional: + + Traffic Description + * Bandwidth per DS-TE class type [RFC4124] (GEF, GCF) + * Bandwidth for LSP from [RFC3270] (GEF, GCF) + * Aggregated RSVP bandwidth requirements from [RFC4804] (GEF) + Variance Factor (GEF, GCF) + + Class of Service (CoS) and Quality of Service (QoS) + * Class Type (CT) from [RFC4124] (GEF, GCF) + Signaled or configured Traffic Class (TC) [RFC5462] to Per Hop + Behavior (PHB) mapping from [RFC3270] (GEF, GCF) + Signaled or configured PHB from [RFC3270] (GEF, GCF) + QoS requirements from NSIS/Y.1541 [RFC5971][RFC5974][RFC5975] + [RFC5976] (GEF) + + Priority + Admission priority (high, normal, best effort) from NSIS/Y.1541 + [RFC5971][RFC5974][RFC5975][RFC5976] (GEF, GCF) + Preemption priority from [RFC4124] (GEF, GCF) + + Request type + Primary tunnel (GEF, GCF) + Backup tunnel and fraction of capacity reserved for backup (GEF, + GCF) + + Oversubscription method (see [RFC3270]) + Over/undersubscribe requested capacity (GEF, GCF) + Over/undersubscribe available bandwidth (GEF, GCF) + + These inputs can be received by the GEF and GCF from a signaling + interface (such as SIP or H.323), RSVP, or an NMS. They can also be + derived from measured traffic levels or from elsewhere. + + + + + + + + +Ash & McDysan Experimental [Page 8] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +2.2. MPLS GCAC Algorithm Summary + + Figure 1 is a reference model for MPLS GCAC and illustrates the GEF + to GEF MPLS GCAC algorithm to determine whether there is sufficient + bandwidth to complete a connection. The originating GEF receives a + connection request including the above input parameters over the + input interface, for example, via an RSVP bandwidth request as + specified in [RFC4804]. The GEF a) determines whether there is + enough bandwidth on the route between the originating and terminating + GEFs via routing and signaling communication with the GCFs at the P, + PE, and ASBR network elements along the path to accommodate the + connection, b) communicates the accept/reject decision on the input + interface for the connection request, and c) keeps account of network + resource allocations by tracking bandwidth use and allocations per + CoS. Optionally, the GEF may dynamically adjust the tunnel size by + signaling communication with the GCFs at nodes along the candidate + paths. For example, the GEF could a) maintain per-CoS tunnel + capacity based on aggregated connection requests and respond on a + connection-by-connection basis based on the available capacity, b) + periodically adjust the tunnel capacity upward, when needed, and + downward when spare capacity exists in the tunnel, and c) use a 'make + before break' mechanism to adjust tunnel capacity in order to + minimize disruption to the bearer traffic. + + In the reference model, DS-TE [RFC4124] tunnels are configured + between the GEFs based on the traffic forecast and current network + utilization. These guaranteed bandwidth DS-TE tunnels are created + using RSVP-TE [RFC3209]. DS-TE bandwidth constraints models are + applied uniformly within each domain, such as the Maximum Allocation + with Reservation (MAR) Bandwidth Constraints Model [RFC4126], the + Maximum Allocation Model (MAM) [RFC4125], and the Russian Dolls Model + (RDM) [RFC4127]. An IGP such as OSPF or IS-IS is used to advertise + bandwidth availability by CT for use by the GCF to determine MPLS + tunnel bandwidth allocation and admission on core (backbone) links. + These DS-TE tunnels are configured based on the forecasted traffic + load, and when needed, LSPs for different CTs can take different + paths. + + As described in Section 3, the unreserved link bandwidth on CTc on + link k (ULBCck) is the only bandwidth allocation parameter that must + be available to the MPLS GCAC algorithm. In the case that a + connection is set up across multiple service provider networks, i.e., + across multiple routing domains/autonomous systems (ASes), there are + several options to enable MPLS GCAC to be implemented: + + 1. Use [OIF-E-NNI] to advertise ULBCck parameters to the originating + GEF, for the full topology of adjacent domains/areas/ASes, as + described in Section 3.3.2.1.2 of [OIF-E-NNI]. Note that the + + + +Ash & McDysan Experimental [Page 9] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + option of abstract node summarization described in [OIF-E-NNI] + will not suffice since the process of summarization results in + loss of topology and capacity usage information. In this manner, + the originating GEF can implement the MPLS GCAC algorithm + described in Section 3 across multiple domains/areas/ASes. + + 2. Use [BGP-TE] to advertise ULBCck parameters via BGP to the + originating GEF for the full topology of adjacent + domains/areas/ASes. In this manner, the originating GEF can + implement the MPLS GCAC algorithm described in Section 3 across + multiple domains/areas/ASes. However, network providers may be + reluctant to divulge full topology and capacity usage information + to other providers. Furthermore, [BGP-TE] was never intended to + provide full TE topology distribution across ASBRs. Such a + mechanism would be neither stable nor scalable. + + 3. Use individual AS control and MPLS crankback [RFC4920] to retain + originating GEF control. For example, in Figure 1, if a + connection crosses the two ASes shown (call them AS1 and AS2), + the source GEF1 applies the GCAC algorithm described in Section 3 + to the links in AS1, that is, between PE1 and PE2/ASBR in Figure + 1. Then, in AS2, the GCF in PE3/ASBR applies the MPLS GCAC + algorithm to the links in AS2, that is, between PE3 and PE4 in + Figure 1. If the flow is rejected in AS2, crankback signaling is + used to inform GEF1. In routing a connection across multiple + ASes, e.g., across AS1-->AS2-->AS3, if the flow is rejected, say + in AS2, the originating GEF1 can seek an alternate route, perhaps + AS1-->AS4-->AS3. This option does not achieve full originating + GEF control with the desired full topology visibility across ASes + but avoids possible issues with obtaining full topology + visibility across ASes. + + 4. Use Path Computation Elements (PCEs) [RFC4655] across multiple + ASes. PCEs could potentially execute the GCAC algorithm within + each AS and communicate/interwork across domains to determine + which high-level path can supply the requested bandwidth. + + In the reference model, the GEFs implement RSVP aggregation [RFC4804] + for scalability. The GEF RSVP aggregator keeps a running total of + bandwidth usage on the DS-TE tunnel, adding the bandwidth + requirements during connection setup and subtracting during + connection teardown. The aggregator determines whether or not there + is sufficient bandwidth for the connection from that originating GEF + to the destination GEF. The destination GEF also checks whether + there is enough bandwidth on the DS-TE tunnel from the destination + GEF to the originating GEF. The aggregate bandwidth usage on the DS- + TE tunnel is also available to the DS-TE bandwidth constraints model. + If the available bandwidth is insufficient, then the GEF sends a PATH + + + +Ash & McDysan Experimental [Page 10] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + message through the tunnel to the other end, requesting bandwidth + using GCFs, and if successful, the source would then complete a new + explicit route with a PATH message along the path with increased + bandwidth, again invoking GCFs on the path. If the size of the DS-TE + tunnel cannot be increased on the primary and alternate LSPs, then + when the DS-TE tunnel bandwidth is exhausted, the GEF aggregator + sends a message to the endpoint denying the reservation. If the DS- + TE tunnels are underutilized, the tunnel bandwidth may be reduced + periodically to an appropriate level. In the case of a basic single + class TE scenario, there is a single TE tunnel rather than multiple- + CT DS-TE tunnels; otherwise, the above GCAC functions remain the + same. + + Optionally, the reference model implements separate queues with + Diffserv based on Traffic Class (TC) bits [RFC5462]. For example, + these queues may include two Expedited Forwarding (EF) priority + queues, with the highest priority assigned to Emergency + Telecommunications Service (ETS) traffic and the second priority + assigned to normal-priority real-time traffic (alternatively, there + could be a single EF queue with dual policers [RFC5865]). Several + Assured Forwarding (AF) queues may be used for various data traffic, + for example, premium private data traffic and premium public data + traffic. A separate best-effort queue may be used for the best- + effort traffic. Several DS-TE tunnels may share the same physical + link and therefore share the same queue. + + The MPLS GCAC algorithm increases the likelihood that the route + selected by the GEF will succeed, even when the LSP traverses + multiple service provider networks. + + Path computation is not part of the GCAC algorithm; rather, it is + considered as a vendor proprietary function, although standard + IP/MPLS functions may be included in path computation, such as the + following: + + a) Path Computation Element (PCE) [RFC4655][RFC4657][RFC5440] to + implement inter-area/inter-AS/inter-SP path selection algorithms, + including alternate path selection, path reoptimization, backup + path computation to protect DS-TE tunnels, and inter-area/inter- + AS/inter-SP traffic engineering. + + b) Backward-Recursive PCE-Based Computation (BRPC) [RFC5441]. + + c) Per-Domain Path Computation [RFC5152]. + + d) MPLS fast reroute [RFC4090] to protect DS-TE LSPs against + failure. + + + + +Ash & McDysan Experimental [Page 11] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + e) MPLS crankback [RFC4920] to trigger alternate path selection and + enable explicit source routing. + +3. MPLS GCAC Algorithm + + MPLS GCAC is performed at the GEF during the connection setup attempt + phase to determine if a connection request can be accepted without + violating existing connections' QoS and throughput requirements. To + enable routing to produce paths that will likely be accepted, it is + necessary for nodes to advertise some information about their + internal CAC states. Such advertisements should not require nodes to + expose detailed and up-to-date CAC information, which may result in + an unacceptably high rate of routing updates. MPLS GCAC advertises + CAC information that is generic (e.g., independent of the actual path + selection algorithms used) and rich enough to support any CAC. + + MPLS GCAC defines a set of parameters to be advertised and a common + admission interpretation of these parameters. This common + interpretation is in the form of an MPLS GCAC algorithm to be + performed during MPLS LSP path selection to determine if a link or + node can be included for consideration. The algorithm uses the + advertised MPLS GCAC parameters (available from the topology + database) and the characteristics of the connection being requested + (available from QoS signaling) to determine if a link/node will + likely accept or reject the connection. A link/node is included if + the MPLS GCAC algorithm determines that it will likely accept the + connection and excluded otherwise. + +3.1. Bandwidth Allocation Parameters + + MPLS GCAC bandwidth allocation parameters for each DS-TE CT are as + defined within DS-TE [RFC4126], OSPF-TE extensions [RFC4203], and IS- + IS-TE extensions [RFC5307]. The following parameters are available + from DS-TE/TE extensions, advertised by the IGP, and available to the + GEF and GCF [RFC4124]. Note that the approach presented in this + section is adapted from [PNNI], Appendix B. + + MRBk Maximum reservable bandwidth on link k specifies the maximum + bandwidth that may be reserved; this may be greater than the + maximum link bandwidth, in which case the link may be + oversubscribed. + + BWCck Bandwidth constraint for CTc on link k = allocated (minimum + guaranteed) bandwidth for CTc on link k. + + ULBCck Unreserved link bandwidth on CTc on link k specifies the + amount of bandwidth not yet reserved for CTc. + + + + +Ash & McDysan Experimental [Page 12] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Note that BWCck and ULBCck are the only DS-TE parameters flooded by + the IGP [RFC4124][RFC4203][RFC5307]. For example, when bandwidth + reservation is used [RFC4126], ULBCck is calculated and flooded by + the IGP as follows: + + RBTk Reservation bandwidth threshold for link k. + + ULBCck Unreserved link bandwidth on CTc on link k specifies the + amount of bandwidth not yet reserved for CTc, taking RBTk + into account, + + ULBCck = ULBk - delta0/1(CTck) * RBTk + where + delta0/1(CTck) = 0 if RBWck < BWCck + delta0/1(CTck) = 1 if RBWck >= BWCck + + Also derivable at the GEF and GCF is MRBCck, the maximum reservable + link bandwidth for CTc. For example, when bandwidth reservation is + used [RFC4126], MRBCck is calculated as follows: + + MRBCck Maximum reservable link bandwidth for CTc on link k specifies + the amount of bandwidth not yet reserved for CTc. + + MRBCck = MRBk - delta0/1(CTck) * RBTk + where + delta0/1(CTck) = 0 if RBWck < BWCck + delta0/1(CTck) = 1 if RBWck >= BWCck + + Note that these bandwidth parameters must be configured in a + consistent way within domains and across domains. GEF routing of + LSPs is based on ULBCck, where ULBk is available and RBTk can be + accounted for by configuration, e.g., RBTk typically = .05 * MRBk. + + Also available are administrative weight (denoted as "link cost" in + [RFC2328]), TE metric [RFC3630], and administrative group (also + called color) 4-octet mask [RFC3630]. + + The following quantities can be derived from information advertised + by the IGP and otherwise available to the GEF and GCF: + + RBWck Reserved bandwidth on CTc on link k (0 <= c <= MaxCT-1). + + RBWck = total amount of bandwidth reserved by all established + LSPs that belong to CTc + RBWck = BWCck - ULBCck. + + + + + + +Ash & McDysan Experimental [Page 13] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + ULBk Unreserved link bandwidth on link k specifies the amount of + bandwidth not yet reserved for any CT. + + ULBk = MRBk - sum [RBWck (0 <= c <= MaxCT-1)]. + + The GCAC algorithm assumes that a DS-TE bandwidth constraints model + is used uniformly within each domain (e.g., MAR [RFC4126], MAM + [RFC4125], or RDM [RFC4127]). European Advanced Networking Test + Center (EANTC) testing [EANTC] has shown that interoperability is + problematic when different DS-TE bandwidth constraints models are + used by different network elements within a domain. Specific testing + of MAM and RDM across different vendor equipment showed the + incompatibility. However, while the characteristics of the 3 DS-TE + bandwidth constraints models are quite different, it is necessary to + specify interworking between them even though it could be complex. + + The following parameters are also defined and available to GCF and + are assumed to be locally configured to be a consistent value across + all nodes and domain(s): + + SBWck Sustained bandwidth for CTc on link k (aggregate of existing + connections). + + SBWck = factor * RBWck where factor is configured based on + standard 'demand overbooking' factors. + + VFck Variance factor for CTc on link k; VFck is BWMck normalized + by variance of SBWck. VFck is configured based on typical + traffic variability statistics. + + In many implementations of the Private Network-Network Interface + (PNNI) GCAC algorithm, the variance factor is not included, or + equivalently, VFck is assumed to be zero. A simplified MPLS GCAC + algorithm is also derived assuming VFck = 0. + + Note that different demand overbooking factors can be specified for + each CT, e.g., no overbooking might be used for constant bitrate + services, while a large overbooking factor might be used for bursty + variable bitrate services. We specify demand overbooking rather than + link overbooking for the GCAC algorithm; one advantage is the demand + overbooking is compatible with source routing used by the GCAC + algorithm. + + + + + + + + + +Ash & McDysan Experimental [Page 14] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Also defined is + + BWMck bandwidth margin for CTc on link k; BWMck = RBWck - SBWck + + GEF uses BWCck, RBWck, ULBCck, SBWck, BWMck, and VFck for LSP/IGP + routing. GEF also needs to track per-CT LSP bandwidth allocation and + reserved bandwidth parameters, which are defined as follows: + + RBWLcl reserved bandwidth for CTc on LSP l + + UBWLcl unreserved bandwidth for CTc on LSP l + +3.2. GCAC Algorithm + + The assumption behind the MPLS GCAC is that the ratio between the + bandwidth margin that the node is putting above the sustained + bandwidth and the standard deviation of the sustained bandwidth does + not change significantly as one new aggregate flow is added on the + link. Any ingress node doing path selection can then compute the new + standard deviation of the aggregate rate (from the old value and the + aggregate flow's traffic descriptors) and an estimate of the new + BWMck. From this, the increase in bandwidth required to carry the + new aggregate flow can be computed and compared to BWCck. + + To expand on the discussion above, let RBWck denote the reserved + bandwidth capacity, i.e., the amount of bandwidth that has been + allocated to existing aggregate flows for CTc on link k by the actual + CAC used in the node. BWMck is the difference between RBWck and the + aggregate sustained bandwidth (SBWck) of the existing aggregate + flows. SBWck can be either the sum of existing aggregate flows' + declared sustainable bandwidth (SBWi for aggregate flow i) or a + smaller (possibly measured or estimated) value. Let MRBCck denote + the maximum reservable bandwidth that is usable by aggregate flows + for CTc on link k. The following diagram illustrates the + relationship among MRBCck, RBWck, BWMck, SBWck, and ULBCck: + + |<-- BWMck-->|<----- ULBCck ----->| + |---------------|------------|--------------------| + 0 SBWck RBWck MRBCck + + The assumption is that BWMck is proportional to some measure of the + burstiness of the traffic generated by the existing aggregate flows, + this measure being the standard deviation of the aggregate traffic + rate defined as the square root of the sum of SBWi(PBWi - SBWi) over + all existing aggregate flows, where SBWi and PBWi are declared + sustainable and peak bandwidth for aggregate flow i, respectively. + This assumption is based on the simple argument that RBWck needs to + be some multiple of the standard deviation above the mean aggregate + + + +Ash & McDysan Experimental [Page 15] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + traffic rate to guarantee some level of packet loss ratio and packet + queuing time. Depending on the actual CAC used, the BWMck-to- + standard-deviation ratio may vary as aggregate flows are established + and taken down. It is reasonable to assume, however, that with a + sufficiently large value of RBWck, this ratio will not vary + significantly. What this means is a link can advertise its current + BWMck-to-standard-deviation ratio (actually in the form of VF, which + is the square of this number), and the MPLS GCAC algorithm can use + this number to estimate how much bandwidth is required to carry an + additional aggregate flow. + + Following the derivation given in [PNNI], Appendix B, the MPLS GCAC + algorithm is derived as follows. Consider an aggregate flow + bandwidth change request DBWi with peak bandwidth PBWi and + sustainable bandwidth SBWi and a link with the following MPLS GCAC + parameters: ULBCck, BWMck, and VFck for CTc and link k. Denote the + variance (i.e., square of standard deviation) of the aggregate + traffic rate by VARk (not advertised). Denote other unadvertised + MPLS GCAC quantities by RBWck and SBWck. Then, + + VARk = SUM SBWi*(PBWi-SBWi) (1) + over existing + aggregate flows i + + and + + BWMck**2 + VFck = ---------- (2) + VARk + + Using the above equation, VARk can be computed from the advertised + VFck and BWMck as: + + VARk = (BWMck**2)/VFck. + + Let DBWi be the additional bandwidth capacity needed to carry the + flow within aggregate sustainable bandwidth SBWi. The MPLS GCAC + algorithm basically computes DBWi from the advertised MPLS GCAC + parameters and the new aggregate flow's traffic descriptors, and + compares it with ULBCck. If ULBCck >= DBWi, then the link is + included for path selection consideration; otherwise, it is excluded, + i.e., + + If (ULBCck >= DBWi), then include link k; else exclude link k (3) + + + + + + + +Ash & McDysan Experimental [Page 16] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Let BWMcknew denote the bandwidth margin if the new aggregate flow + were accepted. Denote other 'new' quantities by RBWcknew, SBWcknew, + and VARnew. Then, + + DBWi = BWMcknew - BWMck + SBWi (4) + + since BWMcknew = RBWcknew - SBWcknew, BWMck = RBWck - SBWck, and + SBWcknew - SBWck = SBWi. Substituting (4) into (3), rearranging + terms, and squaring both sides yield: + + If ((ULBCck+BWMck-SBWck)**2 >= BWMcknew**2), then include link k; + else exclude link k (5) + + Using the MPLS GCAC assumption made earlier, BWMcknew**2 can be + computed as: + + BWMcknew**2 = VFck * VARnew, (6) + + Where + + VARnew = VARk + SBWck * (PBWi-SBWi). (7) + + Substituting (2), (6) and (7) into (5) yields: + + If ((ULBCck+BWMck-SBWi)**2 >= BWMck**2 + VFck*SBWi(PBWi-SBWi)), + then include link k; + else exclude link k (8) + + and moving BWMck**2 to the left-hand side and rearranging terms yield + + If ((ULBCck-SBWi) * (ULBCck-SBWi+2*BWMck) >= VFck*SBWi(PBWi-SBWi), + then include link k; + else exclude link k (9) + + Equation (9) represents the Constrained Shortest Path First (CSPF) + method implemented by most vendors and deployed by most service + providers in MPLS networks. In general, DBWi is between SBWi and + PBWi. So, the above test is not necessary for the cases ULBCck >= + PBWi and ULBCck < SBWi. In the former case, the link is included; in + the latter case, the link is excluded. + + Exclude Include + |<--- link ---->|<-- Test (9)-->|<--- link ----->| + |---------------|---------------|----------------| ULBCck + SBWi PBWi + + + + + + +Ash & McDysan Experimental [Page 17] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Note that VF and BWM are frequently not implemented; equivalently, + these quantities are assumed to be zero, in which case Equation (9) + becomes + + If (ULBCck >= SBWi), then include link k; else exclude link k (10) + + Exclude Include + |<--- link ---->|<--- link ----->| + |---------------|----------------| ULBCck + SBWi PBWi + + PNNI GCAC implementations often do not incorporate the variance + factor VF, in which case Equation (10) is used. + + MPLS GCAC must not reject a best-effort (BE, unassigned bandwidth) + aggregate flow request based on bandwidth availability, but it may + reject based on other reasons such as the number of BE flows + exceeding a chosen threshold. MPLS GCAC defines only one parameter + for the BE service category -- maximum bandwidth (MBW) -- to + advertise how much capacity is usable for BE flows. The purpose of + advertising this parameter is twofold: MBW can be used for path + optimization, and MBW = 0 is used to indicate that a link is not + accepting any (additional) BE flows. + + Demand overbooking of LSP bandwidth is employed and must be compliant + with [RFC4124] and [RFC3270] to over-/undersubscribe requested + capacity. It is simplest to use only one oversubscription method, + i.e., the GCAC algorithm assumes oversubscription of demands per CT, + both within domains and for interworking between domains. The + motivation is that interworking may be infeasible between domains if + different overbooking models are used. Note that the same assumption + was made for DS-TE bandwidth constraints models, in that the GCAC + algorithm assumes a consistent DS-TE bandwidth constraints model is + used within each domain and interoperability of bandwidth constraints + models across domains. + +4. Security Considerations + + It needs to be clearly understood that all routers contain local and + implementation-specific rules (or algorithms) to help them determine + what to do with traffic that exceeds capacity and how to admit new + flows. If these rules are poorly designed or implemented with + defects, then problems may be observed in the network. Furthermore, + the implementation of such algorithms provides a mechanism for + attacking the delivery of traffic within the network. In view of + this, routers and their software are usually extensively tested + before deployment, router vendors are extended a degree of trust, and + a "compromised router" (i.e., one on which an attacker has installed + + + +Ash & McDysan Experimental [Page 18] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + their own code) is considered a weak spot in the system. Note that + if a router is compromised, it can be made to do substantially more + problematic things than simply modifying the admission control + algorithm. Implementers are RECOMMENDED to ensure that software + modifications to routers are fully secured, and operators are + RECOMMENDED to apply security measures (that are outside the scope of + this document) to prevent unauthorized updates to router software. + Nothing in this document suggests any change to normal software + security practices. + + The use of a GCAC priority parameter raises possibilities for theft- + of-service attacks because users could claim an emergency priority + for their flows without real need, thereby effectively preventing + serious emergency calls to get through. Several options exist for + countering such user attacks at the interface to the user, for + example: + + - Only some user groups (e.g., police) are authorized to set the + emergency priority bit using a policy applied to RSVP-TE + signaling. + + - Any user is authorized to employ the emergency priority bit for + particular destination addresses (e.g., police) using a policy + applied to RSVP-TE signaling. + + - If an attack occurs, the user/group and actions taken should be + logged to trace the attack. + + - [RFC5069] identifies a number of security threats against + emergency call marking and mapping. Section 6 of [RFC5069] lists + security requirements to counter these threats, and those + requirements should be followed by implementations of this + document. + + - The security requirements listed in Section 11 of [RFC4412] should + be followed. These requirements apply to use of the + Communications Resource Priority Header for the Session Initiation + Protocol (SIP) and concern aspects of authentication and + authorization, confidentiality and privacy requirements, + protection against denial-of-service attacks, and anonymity. + + Within the network, the policy and integrity mechanisms already + present in RSVP-TE [RFC3209] can be used to ensure that the MPLS LSP + has the right policy and security credentials to assume the signaled + priority and bandwidth. Further discussion of this topic for the + signaling of priority levels using RSVP can be found in [RFC6401]. + Some similarities may also be drawn to the security issues + + + + +Ash & McDysan Experimental [Page 19] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + surrounding the placement of emergency calls in Internet multimedia + systems [RFC5069] although the concepts are only comparable at the + highest levels. + + Like any algorithm, the algorithm specified in this document operates + on data that is supplied as input parameters. That data is assumed + to be collected and stored locally (i.e., on the router performing + the algorithm). It is a fundamental assumption of the secure + operation of any router that the data stored on that router cannot be + externally modified. In this particular case, it is important that + the input parameters to the algorithm cannot be influenced by an + outside party. Thus, as with all configuration parameters on a + router, the implementer MUST supply and the operator is RECOMMENDED + to use security mechanisms to protect writing of the configuration + parameters for this algorithm. + +5. Acknowledgements + + The authors greatly appreciate Adrian Farrel's support in serving as + the sponsoring Area Director for this document and for his valuable + comments and suggestions on the document. The authors also greatly + appreciate Young Lee serving as the document shepherd and his + valuable comments and suggestions. Finally, Robert Sparks' thorough + review and helpful suggestions are sincerely appreciated. + +6. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. + + [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, + "Multiprotocol Label Switching Architecture", RFC 3031, + January 2001. + + [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. + + [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., + Vaananen, P., Krishnan, R., Cheval, P., and J. Heinanen, + "Multi-Protocol Label Switching (MPLS) Support of + Differentiated Services", RFC 3270, May 2002. + + [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic + Engineering (TE) Extensions to OSPF Version 2", RFC + 3630, September 2003. + + + +Ash & McDysan Experimental [Page 20] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + [RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support + of Diffserv-aware MPLS Traffic Engineering", RFC 4124, + June 2005. + + [RFC4203] Kompella, K., Ed., and Y. Rekhter, Ed., "OSPF Extensions + in Support of Generalized Multi-Protocol Label Switching + (GMPLS)", RFC 4203, October 2005. + + [RFC4804] Le Faucheur, F., Ed., "Aggregation of Resource + ReSerVation Protocol (RSVP) Reservations over MPLS + TE/DS-TE Tunnels", RFC 4804, February 2007. + + [RFC4920] Farrel, A., Ed., Satyanarayana, A., Iwata, A., Fujita, + N., and G. Ash, "Crankback Signaling Extensions for MPLS + and GMPLS RSVP-TE", RFC 4920, July 2007. + + [RFC5307] Kompella, K., Ed., and Y. Rekhter, Ed., "IS-IS + Extensions in Support of Generalized Multi-Protocol + Label Switching (GMPLS)", RFC 5307, October 2008. + +7. Informative References + + [BGP-TE] Gredler, H., Farrel, A., Medved, J., and S. Previdi, + "North-Bound Distribution of Link-State and TE + Information using BGP", Work in Progress, March 2012. + + [EANTC] "Multi-vendor Carrier Ethernet Interoperability Event", + Carrier Ethernet World Congress 2006, Madrid Spain, + September 2006. + + [FEEDBACK] Ashwood-Smith, P., Jamoussi, B., Fedyk, D., and D. + Skalecki, "Improving Topology Data Base Accuracy with + Label Switched Path Feedback in Constraint Based Label + Distribution Protocol", Work in Progress, June 2003. + + [OIF-E-NNI] Optical Interworking Forum (OIF), "External Network- + Network Interface (E-NNI) OSPFv2-based Routing - 2.0 + (Intra-Carrier) Implementation Agreement", IA # OIF- + ENNI-OSPF-02.0, July 13, 2011. + + [PNNI] ATM Forum Technical Committee, "Private Network-Network + Interface Specification Version 1.1 (PNNI 1.1)", + af-pnni-0055.002, April 2002. + + [RFC2597] Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski, + "Assured Forwarding PHB Group", RFC 2597, June 1999. + + + + + +Ash & McDysan Experimental [Page 21] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + [RFC3246] Davie, B., Charny, A., Bennet, J., Benson, K., Le + Boudec, J., Courtney, W., Davari, S., Firoiu, V., and D. + Stiliadis, "An Expedited Forwarding PHB (Per-Hop + Behavior)", RFC 3246, March 2002. + + [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast + Reroute Extensions to RSVP-TE for LSP Tunnels", RFC + 4090, May 2005. + + [RFC4125] Le Faucheur, F. and W. Lai, "Maximum Allocation + Bandwidth Constraints Model for Diffserv-aware MPLS + Traffic Engineering", RFC 4125, June 2005. + + [RFC4126] Ash, J., "Max Allocation with Reservation Bandwidth + Constraints Model for Diffserv-aware MPLS Traffic + Engineering & Performance Comparisons", RFC 4126, June + 2005. + + [RFC4127] Le Faucheur, F., Ed., "Russian Dolls Bandwidth + Constraints Model for Diffserv-aware MPLS Traffic + Engineering", RFC 4127, June 2005. + + [RFC4412] Schulzrinne, H. and J. Polk, "Communications Resource + Priority for the Session Initiation Protocol (SIP)", RFC + 4412, February 2006. + + [RFC4655] Farrel, A., Vasseur, JP., and J. Ash, "A Path + Computation Element (PCE)-Based Architecture", RFC 4655, + August 2006. + + [RFC4657] Ash, J., Ed., and JL. Le Roux, Ed., "Path Computation + Element (PCE) Communication Protocol Generic + Requirements", RFC 4657, September 2006. + + [RFC5069] Taylor, T., Ed., Tschofenig, H., Schulzrinne, H., and M. + Shanmugam, "Security Threats and Requirements for + Emergency Call Marking and Mapping", RFC 5069, January + 2008. + + [RFC5152] Vasseur, JP., Ed., Ayyangar, A., Ed., and R. Zhang, "A + Per-Domain Path Computation Method for Establishing + Inter-Domain Traffic Engineering (TE) Label Switched + Paths (LSPs)", RFC 5152, February 2008. + + [RFC5440] Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path + Computation Element (PCE) Communication Protocol + (PCEP)", RFC 5440, March 2009. + + + + +Ash & McDysan Experimental [Page 22] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + [RFC5441] Vasseur, JP., Ed., Zhang, R., Bitar, N., and JL. Le + Roux, "A Backward-Recursive PCE-Based Computation (BRPC) + Procedure to Compute Shortest Constrained Inter-Domain + Traffic Engineering Label Switched Paths", RFC 5441, + April 2009. + + [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label + Switching (MPLS) Label Stack Entry: "EXP" Field Renamed + to "Traffic Class" Field", RFC 5462, February 2009. + + [RFC5865] Baker, F., Polk, J., and M. Dolly, "A Differentiated + Services Code Point (DSCP) for Capacity-Admitted + Traffic", RFC 5865, May 2010. + + [RFC5971] Schulzrinne, H. and R. Hancock, "GIST: General Internet + Signalling Transport", RFC 5971, October 2010. + + [RFC5974] Manner, J., Karagiannis, G., and A. McDonald, "NSIS + Signaling Layer Protocol (NSLP) for Quality-of-Service + Signaling", RFC 5974, October 2010. + + [RFC5975] Ash, G., Ed., Bader, A., Ed., Kappler, C., Ed., and D. + Oran, Ed., "QSPEC Template for the Quality-of-Service + NSIS Signaling Layer Protocol (NSLP)", RFC 5975, October + 2010. + + [RFC5976] Ash, G., Morton, A., Dolly, M., Tarapore, P., Dvorak, + C., and Y. El Mghazli, "Y.1541-QOSM: Model for Networks + Using Y.1541 Quality-of-Service Classes", RFC 5976, + October 2010. + + [RFC6401] Le Faucheur, F., Polk, J., and K. Carlberg, "RSVP + Extensions for Admission Priority", RFC 6401, October + 2011. + + [TQO] Ash, G., "Traffic Engineering and QoS Optimization of + Integrated Voice and Data Networks", Elsevier, 2006. + + + + + + + + + + + + + + +Ash & McDysan Experimental [Page 23] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + +Appendix A: Example MPLS GCAC Implementation Including Path Selection, + Bandwidth Management, QoS Signaling, and Queuing + + Figure 2 illustrates an example of the integrated voice/data MPLS + GCAC method in which bandwidth is allocated on an aggregated basis to + the individual DS-TE CTs. In the example method, CTs have different + priorities including high-priority, normal-priority, and best-effort- + priority services CTs. Bandwidth allocated to each CT is protected + by bandwidth reservation methods, as needed, but bandwidth is + otherwise shared among CTs. Each originating GEF monitors CT + bandwidth use on each MPLS LSP [RFC3031] for each CT, and determines + when CT LSP bandwidth needs to be increased or decreased. In Figure + 2, changes in CT bandwidth capacity are determined by GEFs based on + an overall aggregated bandwidth demand for CT capacity (not on a per- + connection/per-flow demand basis). Based on the aggregated bandwidth + demand, GEFs make periodic discrete changes in bandwidth allocation, + that is, they either increase or decrease bandwidth on the LSPs + constituting the CT bandwidth capacity. For example, if aggregate + flow requests are made for CT LSP bandwidth that exceeds the current + DS-TE tunnel bandwidth allocation, the GEF initiates a bandwidth + modification request on the appropriate LSP(s). This may entail + increasing the current LSP bandwidth allocation by a discrete + increment of bandwidth denoted here as DBW, where DBW is the + additional amount needed by the current aggregate flow request. The + bandwidth admission control for each link in the path is performed by + the GCF based on the status of the link using the bandwidth + allocation procedure described below, where we further describe the + role of the different parameters (such as the reserved bandwidth + threshold RBT shown in Figure 2) in the admission control procedure. + Also, the GEF periodically monitors LSP bandwidth use, and if + bandwidth use falls below the current LSP allocation, the GEF + initiates a bandwidth modification request to decrease the LSP + bandwidth allocation to the current level of bandwidth utilization. + + + + + + + + + + + + + + + + + + +Ash & McDysan Experimental [Page 24] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + HIGH-PRIORITY-CT LSP + +----+======================+----+======================+----+ + |GEF1|NORMAL-PRIORITY-CT LSP| VN | |GEF2| + | |======================| |======================| | + | |LOW-PRIORITY/BE-CT LSP| | | | + +----+======================+----+======================+----+ + + LEGEND + ------ + BE - Best Effort + CT - Class Type + GEF - GCAC Edge Function + LSP - Label Switched Path + VN - Via Node + + o Distributed bandwidth allocation method applied on a + per-class-type (CT) LSP basis + + o GEF allocates bandwidth to each CTc LSP based on demand + + - GEF decides CTc LSP bandwidth increase based on + + + aggregate flow sustained bandwidth (SBWi) and variance factor + VFck + + + routing priority (high, normal, best effort) + + + CTc reserved bandwidth (RBWck) and bandwidth constraint + (BWCck) + + + link reserved bandwidth threshold (RBTk) and unreserved + bandwidth (ULBk) + + - GEF periodically decreases CTc LSP bandwidth allocation based on + bandwidth use + + o VNs send crankback messages to GEF if DS-TE/MAR bandwidth + allocation rules not met + + o Link(s) not meeting request excluded from TE topology database + before attempting another explicit route computation + + Figure 2: Per-Class-Type (CT) LSP Bandwidth Management + + + + + + + + +Ash & McDysan Experimental [Page 25] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + GEF uses SBWi, VFck, RBWck, BWCck, RBTk, and ULBk for LSP bandwidth + allocation decisions and IGP routing and uses RBWcl and UBWcl to + track per-CT LSP bandwidth allocation and reserved bandwidth. In + making a CT bandwidth allocation modification, the GEF determines the + CT priority (high, normal, or best effort), CT bandwidth-in-use, and + CT bandwidth allocation thresholds. These parameters are used to + determine whether network capacity can be allocated for the CT + bandwidth modification request. + +A.1. Example of Path Selection and Bandwidth Management Implementation + + In OSPF, link-state flooding is used to make status updates. This is + a state-dependent routing (SDR) method where CSPF is typically used + to alter LSP routing according to the state of the network. In + general, SDR methods calculate a path cost for each connection + request based on various factors such as the load state or congestion + state of the links in the network. In contrast, the example MPLS + GCAC algorithm uses event-dependent routing (EDR), where LSP routing + is updated locally on the basis of whether connections succeed or + fail on a given path choice. In the EDR learning approaches, the + path that was last tried successfully is tried again until congested, + at which time another path is selected at random and tried on the + next connection request. EDR path choices can also be changed with + time in accordance with changes in traffic load patterns. Success- + to-the-top (STT) EDR path selection, illustrated in Figure 3, uses a + simplified decentralized learning method to achieve flexible adaptive + routing. The primary path (path-p) is used first if available, and a + currently successful alternate path (path-s) is used until it is + congested. In the case that path-s is congested (e.g., bandwidth is + not available on one or more links), a new alternate path (path-n) is + selected at random as the alternate path choice for the next + connection request overflow from the primary path. Bandwidth + reservation is used under congestion conditions to protect traffic on + the primary path. STT-EDR uses crankback when an alternate path is + congested at a via node, and the connection request advances to a new + random path choice. In STT-EDR, many path choices can be tried by a + given connection request before the request is rejected. + + Figure 3 illustrates the example MPLS GCAC operation of STT-EDR path + selection and admission control combined with per-CT bandwidth + allocation. GEF A monitors CT bandwidth use on each CT LSP and + determines when CT LSP bandwidth needs to be increased or decreased. + Based on the bandwidth demand, GEF A makes periodic discrete changes + in bandwidth allocation, that is, either increases or decreases + bandwidth on the LSPs constituting the CT bandwidth capacity. If + aggregate flow requests are made for CT LSP bandwidth that exceeds + the current LSP bandwidth allocation, GEF A initiates a bandwidth + modification request on the appropriate LSP(s). + + + +Ash & McDysan Experimental [Page 26] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + |<----- ULBk <= RBTk ---->| + LSP-p |------------------------|-------------------------| + A B E + + |<-- ULBk <= RBTk -->| + LSP-s |---------------|--------------------|-------------| + A C D E + + Example of STT-EDR routing method: + + 1. If node A to node E bandwidth needs to be modified (say + increased by DBW), primary LSP-p (e.g., LSP A-B-E) is tried + first. + + 2. Available bandwidth is tested locally on each link in LSP-p. If + bandwidth not available (e.g., unreserved bandwidth on link BE + is less than the reserved bandwidth threshold and this CT is + above its bandwidth allocation), crankback to node A. + + 3. If DBW is not available on one or more links of LSP-p, then the + currently successful LSP-s (e.g., LSP A-C-D-E) is tried next. + + 4. If DBW is not available on one or more links of LSP-s, then a + new LSP is searched by trying additional candidate paths until a + new successful LSP-n is found or the candidate paths are + exhausted. + + 5. LSP-n is then marked as the currently successful path for the + next time bandwidth needs to be modified. + + Figure 3: STT-EDR Path Selection and Per-CT Bandwidth Allocation + + For example, in Figure 3, if the LSR-A to LSR-E bandwidth needs to be + modified, say increased by DBW, the primary LSP-p (A-B-E) is tried + first. The bandwidth admission control for each link in the path is + performed based on the status of the link using the bandwidth + allocation procedure described below, where we further describe the + role of the reserved bandwidth RBWck shown in Figure 3 in the + admission control procedure. If the first choice LSP cannot admit + the bandwidth change, node A may then try an alternate LSP. If DBW + is not available on one or more links of LSP-p, then the currently + successful LSP-s A-C-D-E (the 'STT path') is tried next. If DBW is + not available on one or more links of LSP-s, then a new LSP is + searched by trying additional candidate paths (not shown) until a new + successful LSP-n is found or all of the candidate paths held in the + cache are exhausted. LSP-n is then marked as the currently + + + + + +Ash & McDysan Experimental [Page 27] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + successful path for the next time bandwidth needs to be modified. + DBW is set to the additional amount of bandwidth required by the + aggregate flow request. + + If all cached candidate paths are tried without success, the search + then generates a new CSPF path. If a new CSPF calculation succeeds + in finding a new path, that path is made the stored path, and the + bottom cached path falls off the list. If all cached paths fail and + a new CSPF path cannot be found, then the original stored LSP is + retained. New requests go through the same routing algorithm again, + since available bandwidth, etc., has changed and new requests might + be admitted. Also, GEF A periodically monitors LSP bandwidth use + (e.g., once each 2-minute interval), and if bandwidth use falls below + the current LSP allocation, the GEF initiates a bandwidth + modification request to decrease the LSP bandwidth allocation to the + currently used bandwidth level. Bandwidth reservation occurs in STT- + EDR with PATH/RESV messages per application of [RFC4804]. + + In the STT-EDR computation, most of the time the primary path and + stored path will succeed, and no CSPF calculation needs to be done. + Therefore, the STT-EDR algorithm achieves good throughput performance + while significantly reducing link-state flooding control load [TQO]. + An analogous method was proposed in the MPLS working group + [FEEDBACK], where feedback based on failed path routing attempts is + kept by the TE database and used when running CSPF. + + In the example GCAC method, bandwidth allocation to the primary and + alternate LSPs uses the MAR bandwidth allocation procedure, as + described below. Path selection uses a topology database that + includes available bandwidth on each link. From the topology + database pruned of links that do not meet the bandwidth constraint, + the GEF determines a list of shortest paths by using a shortest path + algorithm (e.g., Bellman-Ford or Dijkstra methods). This path list + is determined based on administrative weights of each link, which are + communicated to all nodes within the routing domain (e.g., + administrative weight = 1 + e x distance, where e is a factor giving + a relatively smaller weight to the distance in comparison to the hop + count). Analysis and simulation studies of a large national network + model show that 6 or more primary and alternate cached paths provide + the best overall performance. + + PCE [RFC4655][RFC4657][RFC5440] is used to implement + inter-area/inter-AS/ inter-SP path selection algorithms, including + alternate path selection, path reoptimization, backup path + computation to protect DS-TE tunnels, and inter-area/inter-AS/inter- + SP traffic engineering. The DS-TE tunnels are protected against + + + + + +Ash & McDysan Experimental [Page 28] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + failure by using MPLS Fast Reroute [RFC4090]. OSPF TE extensions + [RFC4203] are used to support the TE database (TED) required for + implementation of the above PCE path selection methods. + + The example MPLS GCAC method incorporates the MAR bandwidth + constraint model [RFC4126] incorporated within DS-TE [RFC4124]. In + DS-TE/MAR, a small amount of reserved bandwidth RBTk governs the + admission control on link k. Associated with each CTc on link k are + the allocated bandwidth constraints BWCck to govern bandwidth + allocation and protection. The reservation bandwidth on a link, + RBTk, can be accessed when a given CTc has reserved bandwidth RBWck + below its allocated bandwidth constraint BWCck. However, if RBWck + exceeds its allocated bandwidth constraint BWCck, then the + reservation bandwidth threshold RBTk cannot be accessed. In this + way, bandwidth can be fully shared among CTs if available but is + otherwise protected by bandwidth reservation methods. Therefore, + bandwidth can be accessed for a bandwidth request = DBW for CTc on a + given link k based on the following rules: + + For an LSP on a high-priority or normal-priority CTc: + + If RBWck = BWCc, admit if DBW = ULBk + If RBWck > BWCc, admit if DBW = ULBk - RBTk; + + or, equivalently: + + If DBW = ULBCck, admit the LSP. + + where + + ULBCck = idle link bandwidth on link k for CTc = ULBk - + delta0/1(CTck) x RBWk + delta0/1(CTck) = 0 if RBWck < BWCck + delta0/1(CTck) = 1 if RBWck = BWCck + + For an LSP on a best-effort-priority CTc: + + allocated bandwidth BWCc = 0; + Diffserv queuing serves best-effort packets only if there is + available link bandwidth. + + In setting the bandwidth constraints for CTck, for a normal-priority + CTc, the bandwidth constraints (BWCck) on link k are set by + allocating the maximum reservable link bandwidth (MRBk) in proportion + to the forecast or measured traffic load bandwidth TRAF_LOAD_BWck for + CTc on link k. That is: + + + + + +Ash & McDysan Experimental [Page 29] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + PROPORTIONAL_ BWck = + TRAF_LOAD_ BWck/[S (c) {TRAF_LOAD_ BWck, c=0, MaxCT-1}] x MRBk + + For a normal-priority CTc: + BWCck = PROPORTIONAL_ BWck + + For a high-priority CT, the bandwidth constraint BWCck is set to a + multiple of the proportional bandwidth. That is: + + For high-priority CTc: + BWCck = FACTOR * PROPORTIONAL_ BWck + + where FACTOR is set to a multiple of the proportional bandwidth + (e.g., FACTOR = 2 or 3 is typical). This results in some over- + allocation ('overbooking') of the link bandwidth and gives priority + to the high-priority CTs. Normally, the bandwidth allocated to high- + priority CTs should be a relatively small fraction of the total link + bandwidth, a maximum of 10-15 percent being a reasonable guideline. + + As stated above, the bandwidth allocated to a best-effort-priority + CTc is set to zero. That is: + + For a best-effort-priority CTc: + BWCck = 0 + + Analysis and simulation studies show that the level of reserved + capacity RBTk in the range of 3-5% of link capacity provides the best + overall performance. + + We give a simple example of the MAR bandwidth allocation method. + Assume that there are two class types, CT0 and CT1, and a particular + link with + + MRB = 100 + + with the allocated bandwidth constraints set as follows: + + BWC0 = 30 + BWC1 = 50 + + These bandwidth constraints are based on the forecasted traffic + loads, as discussed above. Either CT is allowed to exceed its + bandwidth constraint BWCc as long a there is at least RBW units of + spare bandwidth remaining. Assume RBT = 10. So under overload, if + + RBW0 = 20 + RBW1 = 70 + + + + +Ash & McDysan Experimental [Page 30] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Then, for this loading + + UBW = 100 - 20 - 70 = 10 + + If a bandwidth increase request = 5 = DBW arrives for Class Type 0 + (CT0), then accept for CT0 since RBW0 < BWC0 and DBW (= 5) < ILBW (= + 10). + + If a bandwidth increase request = 5 = DBW arrives for Class Type 1 + (CT1), then reject for CT1 since RBW1 > BC1 and DBW (= 5) > ILBW - + RBT = 10 - 10 = 0. + + Therefore, CT0 can take the additional bandwidth (up to 10 units) if + the demand arrives, since it is below its BWC value. CT1, however, + can no longer increase its bandwidth on the link, since it is above + its BWC value and there is only RBT=10 units of idle bandwidth left + on the link. If best effort traffic is present, it can always seize + whatever idle bandwidth is available on the link at the moment but is + subject to being lost at the queues in favor of the higher-priority + traffic. + + On the other hand, if a request arrives to increase bandwidth for CT1 + by 5 units of bandwidth (i.e., DBW = 5), we need to decide whether or + not to admit this request. Since for CT1, + + RBW1 > BWC1 (70 > 50), and + DBW > UBW - RBT (i.e., 5 > 10 - 10) + + the bandwidth request is rejected by the bandwidth allocation rules + given above. Now let's say a request arrives to increase bandwidth + for CT0 by 5 units of bandwidth (i.e., DBW = 5). We need to decide + whether or not to admit this request. Since for CT0 + + RBW0 < BWC0 (20 < 30), and + DBW < UBW (i.e., 5 < 10) + + The example illustrates that with the current state of the link and + the current CT loading, CT1 can no longer increase its bandwidth on + the link, since it is above its BWC1 value and there is only RBW=10 + units of spare bandwidth left on the link. But CT0 can take the + additional bandwidth (up to 10 units) if the demand arrives, since it + is below its BWC0 value. + + For the example GCAC, the method for bandwidth additions and + deletions to LSPs in is as follows. The bandwidth constraint + parameters defined in the MAR method [RFC4126] do not change based on + traffic conditions. In particular, these parameters defined in + [RFC4126], as described above, are configured and do not change until + + + +Ash & McDysan Experimental [Page 31] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + reconfigured: MRBk, BWCck, and RBTk. However, the reserved bandwidth + variables change based on traffic: RBWck, ULBk, and ULBCck. The + RBWck and bandwidth allocated to each DS-TE/MAR tunnel is dynamically + changed based on traffic: it is increased when the traffic demand + increases (using RSVP aggregation), and it is periodically decreased + when the traffic demand decreases. Furthermore, if tunnel bandwidth + cannot be increased on the primary path, an alternate LSP path is + tried. When LSP tunnel bandwidth needs to be increased to + accommodate a given aggregate flow request, the bandwidth is + increased by the amount of the needed additional bandwidth, if + possible. The tunnel bandwidth quickly rises to the currently needed + maximum bandwidth level, wherein no further requests are made to + increase bandwidth, since departing flows leave a constant amount of + available or spare bandwidth in the tunnel to use for new requests. + Tunnel bandwidth is reduced every 120 seconds by 0.5 times the + difference between the allocated tunnel bandwidth and the current + level of the actually utilized bandwidth (i.e., the current level of + spare bandwidth). Analysis and simulation modeling results show that + these parameters provide the best performance across a number of + overload and failure scenarios. + +A.2. Example of QoS Signaling Implementation + + The example GCAC method uses Next Steps in Signaling (NSIS) + algorithms for signaling MPLS GCAC QoS requirements of individual + flows. NSIS QoS signaling has been specified by the IETF NSIS + working group and extends RSVP signaling by defining a two-layer QoS + signaling model: + + o NSIS Transport Layer Protocol (NTLP) [RFC5971] + + o NSIS Signaling Layer Protocol (NSLP) for Quality-of-Service + Signaling [RFC5974] + + [RFC5975] defines a QoS specification (QSPEC) object, which contains + the QoS parameters required by a QoS model (QOSM) [RFC5976]. A QOSM + specifies the QoS parameters and procedures that govern the resource + management functions in a QoS-aware router. Multiple QOSMs can be + supported by the QoS-NSLP, and the QoS-NSLP allows stacking of QSPEC + parameters to accommodate different QOSMs being used in different + domains. As such, NSIS provides a mechanism for interdomain QoS + signaling and interworking. + + + + + + + + + +Ash & McDysan Experimental [Page 32] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + The QSPEC parameters defined in [RFC5975] include, among others: + + TRAFFIC DESCRIPTION Parameters: + + o <Traffic Model> Parameters + + CONSTRAINTS Parameters: + + o <Path Latency>, <Path Jitter>, <Path PLR>, and <Path PER> + Parameters + + o <PHB Class> Parameter + + o <DSTE Class Type> Parameter + + o <Y.1541 QoS Class> Parameter + + o <Reservation Priority> Parameter + + o <Preemption Priority> and <Defending Priority> Parameters + + The ability to achieve end-to-end QoS through multiple Internet + domains is also an important requirement. MPLS GCAC end-to-end QoS + signaling ensures that end-to-end QoS is met by applying the + Y.1541-QOSM [RFC5976], as now illustrated. + + The QoS GEF initiates an end-to-end, inter-domain QoS RESERVE message + containing the QoS parameters, including for example, <Traffic + Model>, <Y.1541 QoS Class>, <Reservation Priority>, and perhaps other + parameters for the flow. The RESERVE message may cross multiple + domains; each node on the data path checks the availability of + resources and accumulating the delay, delay variation, and loss ratio + parameters, as described below. If an intermediate node cannot + accommodate the new request, the reservation is denied. If no + intermediate node has denied the reservation, the RESERVE message is + forwarded to the next domain. If any node cannot meet the + requirements designated by the RESERVE message to support a QoS + parameter, for example, it cannot support the accumulation of end-to- + end delay with the <Path Latency> parameter, the node sets a flag + that will deny the reservation. Also, parameter negotiation can be + done, for example, by setting the <Y.1541 QoS Class> to a lower class + than specified in the RESERVE message. When the available <Y.1541 + QoS Class> must be reduced from the desired <Y.1541 QoS Class>, say + because the delay objective has been exceeded, then there is an + incentive to respond to the GEF with an available value for delay in + the <Path Latency> parameter. For example, if the available <Path + Latency> is 150 ms (still useful for many applications) and the + desired QoS is 100 ms (according to the desired <Y.1541 QoS Class> + + + +Ash & McDysan Experimental [Page 33] + +RFC 6601 GCAC Algorithm for IP/MPLS Networks April 2012 + + + Class 0), then the response would be that Class 0 cannot be achieved + and Class 1 is available (with its 400 ms objective). In addition, + the response includes an available <Path Latency> = 150 ms, making + acceptance of the available <Y.1541 QoS Class> more likely. + +A.3. Example of Queuing Implementation + + In this MPLS GCAC example, queuing behaviors for the CT traffic + priorities incorporates Diffserv mechanisms and assumes separate + queues based on Traffic Class (TC)/CoS bits. The queuing + implementation assumes 3 levels of priority: high, normal, and best + effort. These queues include two EF priority queues + [RFC3246][RFC5865], with the highest priority assigned to emergency + traffic (GETS/ETS/E911) and the second priority assigned to normal- + priority real-time (e.g., VoIP) traffic. Separate AF queues + [RFC2597] are used for data services, such as premium private data + and premium public data traffic, and a separate best-effort queue is + assumed for the best-effort traffic. All queues have static + bandwidth allocation limits applied based on the level of forecast + traffic on each link, such that the bandwidth limits will not be + exceeded under normal conditions, allowing for some traffic overload. + In the MPLS GCAC method, high-priority, normal-priority, and best- + effort traffic share the same network; under congestion, the Diffserv + priority-queuing mechanisms push out the best-effort-priority traffic + at the queues so that the normal-priority and high-priority traffic + can get through on the MPLS-allocated LSP bandwidth. + +Authors' Addresses + + Gerald Ash (editor) + AT&T + + EMail: gash5107@yahoo.com + + + Dave McDysan + Verizon + 22001 Loudoun County Pkwy + Ashburn, VA 20147 + + EMail: dave.mcdysan@verizon.com + + + + + + + + + + +Ash & McDysan Experimental [Page 34] + |