home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2702.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  68.4 KB  |  1,628 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          D. Awduche
  8. Request for Comments: 2702                                     J. Malcolm
  9. Category: Informational                                        J. Agogbua
  10.                                                                 M. O'Dell
  11.                                                                J. McManus
  12.                                                      UUNET (MCI Worldcom)
  13.                                                            September 1999
  14.  
  15.  
  16.              Requirements for Traffic Engineering Over MPLS
  17.  
  18. Status of this Memo
  19.  
  20.    This memo provides information for the Internet community.  It does
  21.    not specify an Internet standard of any kind.  Distribution of this
  22.    memo is unlimited.
  23.  
  24. Copyright Notice
  25.  
  26.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  27.  
  28. Abstract
  29.  
  30.    This document presents a set of requirements for Traffic Engineering
  31.    over Multiprotocol Label Switching (MPLS). It identifies the
  32.    functional capabilities required to implement policies that
  33.    facilitate efficient and reliable network operations in an MPLS
  34.    domain. These capabilities can be used to optimize the utilization of
  35.    network resources and to enhance traffic oriented performance
  36.    characteristics.
  37.  
  38. Table of Contents
  39.  
  40.    1.0   Introduction .............................................  2
  41.    1.1   Terminology ..............................................  3
  42.    1.2   Document Organization ....................................  3
  43.    2.0   Traffic Engineering ......................................  4
  44.    2.1   Traffic Engineering Performance Objectives ...............  4
  45.    2.2   Traffic and Resource Control .............................  6
  46.    2.3   Limitations of Current IGP Control Mechanisms ............  6
  47.    3.0   MPLS and Traffic Engineering .............................  7
  48.    3.1   Induced MPLS Graph .......................................  9
  49.    3.2   The Fundamental Problem of Traffic Engineering Over MPLS .  9
  50.    4.0   Augmented Capabilities for Traffic Engineering Over MPLS . 10
  51.    5.0   Traffic Trunk Attributes and Characteristics   ........... 10
  52.    5.1   Bidirectional Traffic Trunks ............................. 11
  53.    5.2   Basic Operations on Traffic Trunks ....................... 12
  54.    5.3   Accounting and Performance Monitoring .................... 12
  55.  
  56.  
  57.  
  58. Awduche, et al.              Informational                      [Page 1]
  59.  
  60. RFC 2702                MPLS Traffic Engineering          September 1999
  61.  
  62.  
  63.    5.4   Basic Attributes of Traffic Trunks ....................... 13
  64.    5.5   Traffic Parameter Attributes  ............................ 14
  65.    5.6   Generic Path Selection and Management Attributes ......... 14
  66.    5.6.1 Administratively Specified Explicit Paths ................ 15
  67.    5.6.2 Hierarchy of Preference Rules for Multi-paths ............ 15
  68.    5.6.3 Resource Class Affinity Attributes ....................... 16
  69.    5.6.4 Adaptivity Attribute ..................................... 17
  70.    5.6.5 Load Distribution Across Parallel Traffic Trunks ......... 18
  71.    5.7   Priority Attribute ....................................... 18
  72.    5.8   Preemption Attribute ..................................... 18
  73.    5.9   Resilience Attribute ..................................... 19
  74.    5.10  Policing Attribute  ...................................... 20
  75.    6.0   Resource Attributes ...................................... 21
  76.    6.1   Maximum Allocation Multiplier ............................ 21
  77.    6.2   Resource Class Attribute  ................................ 22
  78.    7.0   Constraint-Based Routing  ................................ 22
  79.    7.1   Basic Features of Constraint-Based Routing ............... 23
  80.    7.2   Implementation Considerations ............................ 24
  81.    8.0   Conclusion   ............................................. 25
  82.    9.0   Security Considerations .................................. 26
  83.    10.0  References   ............................................. 26
  84.    11.0  Acknowledgments .......................................... 27
  85.    12.0  Authors' Addresses ....................................... 28
  86.    13.0  Full Copyright Statement ................................. 29
  87.  
  88. 1.0 Introduction
  89.  
  90.    Multiprotocol Label Switching (MPLS) [1,2] integrates a label
  91.    swapping framework with network layer routing. The basic idea
  92.    involves assigning short fixed length labels to  packets at the
  93.    ingress to an MPLS cloud (based on the concept of forwarding
  94.    equivalence classes [1,2]). Throughout the interior of the MPLS
  95.    domain, the labels attached to packets are used to make forwarding
  96.    decisions  (usually without recourse to the original packet headers).
  97.  
  98.    A set of powerful constructs to address many critical issues in the
  99.    emerging differentiated services Internet can be devised from this
  100.    relatively simple paradigm.  One of the most significant initial
  101.    applications of MPLS will be in Traffic Engineering. The importance
  102.    of this application is already well-recognized (see [1,2,3]).
  103.  
  104.    This manuscript is exclusively focused on the Traffic Engineering
  105.    applications of MPLS. Specifically, the goal of this document is to
  106.    highlight the issues and requirements for Traffic Engineering in a
  107.    large Internet backbone. The expectation is that the MPLS
  108.    specifications, or implementations derived therefrom, will address
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Awduche, et al.              Informational                      [Page 2]
  115.  
  116. RFC 2702                MPLS Traffic Engineering          September 1999
  117.  
  118.  
  119.    the realization of these objectives.  A description of the basic
  120.    capabilities and functionality required of an MPLS implementation to
  121.    accommodate the requirements is also presented.
  122.  
  123.    It should be noted that even though the focus is on Internet
  124.    backbones, the capabilities described in this document are equally
  125.    applicable to Traffic Engineering in enterprise networks. In general,
  126.    the capabilities can  be applied to any label switched network under
  127.    a single technical administration in which at least two paths exist
  128.    between two nodes.
  129.  
  130.    Some recent manuscripts have focused on the considerations pertaining
  131.    to Traffic Engineering and Traffic management under MPLS, most
  132.    notably the works of Li and Rekhter [3], and others.  In [3], an
  133.    architecture is proposed which employs MPLS and RSVP to provide
  134.    scalable differentiated services and Traffic Engineering in the
  135.    Internet.  The present manuscript complements the aforementioned and
  136.    similar efforts.  It reflects the authors' operational experience in
  137.    managing a large Internet backbone.
  138.  
  139. 1.1 Terminology
  140.  
  141.    The reader is assumed to be familiar with the MPLS terminology as
  142.    defined in [1].
  143.  
  144.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  145.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  146.    document are to be interpreted as described in RFC 2119 [11].
  147.  
  148. 1.2 Document Organization
  149.  
  150.    The remainder of this document is organized as follows: Section 2
  151.    discusses the basic functions of Traffic Engineering in the Internet.
  152.    Section 3, provides an overview of the traffic Engineering potentials
  153.    of MPLS. Sections 1 to 3 are essentially background material. Section
  154.    4 presents an overview of the fundamental requirements for Traffic
  155.    Engineering over MPLS. Section 5 describes the desirable attributes
  156.    and characteristics of traffic trunks which are pertinent to Traffic
  157.    Engineering. Section 6 presents a set of attributes which can be
  158.    associated with resources to constrain the routability of traffic
  159.    trunks and LSPs through them. Section 7 advocates the introduction of
  160.    a "constraint-based routing" framework in MPLS domains.  Finally,
  161.    Section 8 contains concluding remarks.
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Awduche, et al.              Informational                      [Page 3]
  171.  
  172. RFC 2702                MPLS Traffic Engineering          September 1999
  173.  
  174.  
  175. 2.0 Traffic Engineering
  176.  
  177.    This section describes the basic functions of Traffic Engineering in
  178.    an Autonomous System in the contemporary Internet. The limitations of
  179.    current IGPs with respect to traffic and resource control are
  180.    highlighted. This section serves as motivation for the requirements
  181.    on MPLS.
  182.  
  183.    Traffic Engineering (TE) is concerned with performance optimization
  184.    of operational networks. In general, it encompasses the application
  185.    of technology and scientific principles to the measurement, modeling,
  186.    characterization, and control of Internet traffic, and the
  187.    application of such knowledge and techniques to achieve specific
  188.    performance objectives. The aspects of Traffic Engineering that are
  189.    of interest concerning MPLS are measurement and control.
  190.  
  191.    A major goal of Internet Traffic Engineering is to facilitate
  192.    efficient and reliable network operations while simultaneously
  193.    optimizing network resource utilization and traffic performance.
  194.    Traffic Engineering has become an indispensable function in many
  195.    large Autonomous Systems because of the high cost of network assets
  196.    and the commercial and competitive nature of the Internet. These
  197.    factors emphasize the need for maximal operational efficiency.
  198.  
  199. 2.1 Traffic Engineering Performance Objectives
  200.  
  201.    The key performance objectives associated with traffic engineering
  202.    can be classified as being either:
  203.  
  204.     1. traffic oriented or
  205.  
  206.     2. resource oriented.
  207.  
  208.    Traffic oriented performance objectives include the aspects that
  209.    enhance the QoS of traffic streams. In a single class, best effort
  210.    Internet service model, the key traffic oriented performance
  211.    objectives include: minimization of packet loss, minimization of
  212.    delay, maximization of throughput, and enforcement of service level
  213.    agreements. Under a single class best effort Internet service model,
  214.    minimization of packet loss is one of the most important traffic
  215.    oriented performance objectives. Statistically bounded traffic
  216.    oriented performance objectives (such as peak to peak packet delay
  217.    variation, loss ratio, and maximum packet transfer delay) might
  218.    become useful in the forthcoming differentiated services Internet.
  219.  
  220.    Resource oriented performance objectives include the aspects
  221.    pertaining to the optimization of resource utilization. Efficient
  222.    management of network resources is the vehicle for the attainment of
  223.  
  224.  
  225.  
  226. Awduche, et al.              Informational                      [Page 4]
  227.  
  228. RFC 2702                MPLS Traffic Engineering          September 1999
  229.  
  230.  
  231.    resource oriented performance objectives. In particular, it is
  232.    generally desirable to ensure that subsets of network resources do
  233.    not become over utilized and congested while other subsets along
  234.    alternate feasible paths remain underutilized. Bandwidth is a crucial
  235.    resource in contemporary networks.  Therefore, a central function of
  236.    Traffic Engineering is to efficiently manage bandwidth resources.
  237.  
  238.    Minimizing congestion is a primary traffic and resource oriented
  239.    performance objective.  The interest here is on congestion problems
  240.    that are prolonged rather than on transient congestion resulting from
  241.    instantaneous bursts.  Congestion typically manifests under two
  242.    scenarios:
  243.  
  244.    1. When network resources are insufficient or inadequate to
  245.       accommodate offered load.
  246.  
  247.    2. When traffic streams are inefficiently mapped onto available
  248.       resources; causing subsets of network resources to become
  249.       over-utilized while others remain underutilized.
  250.  
  251.    The first type of congestion problem can be addressed by either: (i)
  252.    expansion of capacity, or (ii) application of classical congestion
  253.    control techniques, or (iii) both. Classical congestion control
  254.    techniques attempt to regulate the demand so that the traffic fits
  255.    onto available resources. Classical techniques for congestion control
  256.    include: rate limiting, window flow control, router queue management,
  257.    schedule-based control, and others; (see [8] and the references
  258.    therein).
  259.  
  260.    The second type of congestion problems, namely those resulting from
  261.    inefficient resource allocation, can usually be addressed through
  262.    Traffic Engineering.
  263.  
  264.    In general, congestion resulting from inefficient resource allocation
  265.    can be reduced by adopting load balancing policies. The objective of
  266.    such strategies is to minimize maximum congestion or alternatively to
  267.    minimize maximum resource utilization, through efficient resource
  268.    allocation. When congestion is minimized through efficient resource
  269.    allocation, packet loss decreases, transit delay decreases, and
  270.    aggregate throughput increases. Thereby, the perception of network
  271.    service quality experienced by end users becomes significantly
  272.    enhanced.
  273.  
  274.    Clearly, load balancing is an important network performance
  275.    optimization policy. Nevertheless, the capabilities provided for
  276.    Traffic Engineering should be flexible enough so that network
  277.    administrators can implement other policies which take into account
  278.    the prevailing cost structure and the utility or revenue model.
  279.  
  280.  
  281.  
  282. Awduche, et al.              Informational                      [Page 5]
  283.  
  284. RFC 2702                MPLS Traffic Engineering          September 1999
  285.  
  286.  
  287. 2.2 Traffic and Resource Control
  288.  
  289.    Performance optimization of operational networks is fundamentally a
  290.    control problem. In the traffic engineering process model, the
  291.    Traffic Engineer, or a suitable automaton, acts as the controller in
  292.    an adaptive feedback control system. This system includes a set of
  293.    interconnected network elements, a network performance monitoring
  294.    system, and a set of network configuration management tools. The
  295.    Traffic Engineer formulates a control policy, observes the state of
  296.    the network through the monitoring system, characterizes the traffic,
  297.    and applies control actions to drive the network to a desired state,
  298.    in accordance with the control policy.  This can be accomplished
  299.    reactively by taking action in response to the current state of the
  300.    network, or pro-actively by using forecasting techniques to
  301.    anticipate future trends and applying action to obviate the predicted
  302.    undesirable future states.
  303.  
  304.    Ideally, control actions should involve:
  305.  
  306.    1. Modification of traffic management parameters,
  307.  
  308.    2. Modification of parameters associated with routing, and
  309.  
  310.    3. Modification of attributes and constraints associated with
  311.       resources.
  312.  
  313.    The level of manual intervention involved in the traffic engineering
  314.    process should be minimized whenever possible.  This can be
  315.    accomplished by automating aspects of the control actions described
  316.    above, in a distributed and scalable fashion.
  317.  
  318. 2.3 Limitations of Current IGP Control Mechanisms
  319.  
  320.    This subsection reviews some of the well known limitations of current
  321.    IGPs with regard to Traffic Engineering.
  322.  
  323.    The control capabilities offered by existing Internet interior
  324.    gateway protocols are not adequate for Traffic Engineering.  This
  325.    makes it difficult to actualize effective policies to address network
  326.    performance problems.  Indeed, IGPs based on shortest path algorithms
  327.    contribute significantly to congestion problems in Autonomous Systems
  328.    within the Internet. SPF algorithms generally optimize based on a
  329.    simple additive metric. These protocols are topology driven, so
  330.    bandwidth availability and traffic characteristics are not factors
  331.    considered in routing decisions. Consequently, congestion frequently
  332.    occurs when:
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Awduche, et al.              Informational                      [Page 6]
  339.  
  340. RFC 2702                MPLS Traffic Engineering          September 1999
  341.  
  342.  
  343.    1. the shortest paths of multiple traffic streams converge on
  344.       specific links or router interfaces, or
  345.  
  346.    2. a given traffic stream is routed through a link or router
  347.       interface which does not have enough bandwidth to accommodate
  348.       it.
  349.  
  350.    These scenarios manifest even when feasible alternate paths with
  351.    excess capacity exist. It is this aspect of congestion problems (-- a
  352.    symptom of suboptimal resource allocation) that Traffic Engineering
  353.    aims to vigorously obviate.  Equal cost path load sharing can be used
  354.    to address the second cause for congestion listed above with some
  355.    degree of success, however it is generally not helpful in alleviating
  356.    congestion due to the first cause listed above and particularly not
  357.    in large networks with dense topology.
  358.  
  359.    A popular approach to circumvent the inadequacies of current IGPs is
  360.    through the use of an overlay model, such as IP over ATM or IP over
  361.    frame relay. The overlay model extends the design space by enabling
  362.    arbitrary virtual topologies to be provisioned atop the network's
  363.    physical topology. The virtual topology is constructed from virtual
  364.    circuits which appear as physical links to the IGP routing protocols.
  365.    The overlay model provides additional important services to support
  366.    traffic and resource control, including: (1) constraint-based routing
  367.    at the VC level, (2) support for administratively configurable
  368.    explicit VC paths, (3) path compression, (4) call admission control
  369.    functions, (5) traffic shaping and traffic policing functions, and
  370.    (6) survivability of VCs. These capabilities enable the actualization
  371.    of a variety of Traffic Engineering policies. For example, virtual
  372.    circuits can easily be rerouted to move traffic from over-utilized
  373.    resources onto relatively underutilized ones.
  374.  
  375.    For Traffic Engineering in large dense networks, it is desirable to
  376.    equip MPLS with a level of functionality at least commensurate with
  377.    current overlay models. Fortunately, this can be done in a fairly
  378.    straight forward manner.
  379.  
  380. 3.0  MPLS and Traffic Engineering
  381.  
  382.    This section provides an overview of the applicability of MPLS to
  383.    Traffic Engineering. Subsequent sections discuss the set of
  384.    capabilities required to meet the Traffic Engineering requirements.
  385.  
  386.    MPLS is strategically significant for Traffic Engineering because it
  387.    can potentially provide most of the functionality available from the
  388.    overlay model, in an integrated manner, and at a lower cost than the
  389.    currently competing alternatives. Equally importantly, MPLS offers
  390.  
  391.  
  392.  
  393.  
  394. Awduche, et al.              Informational                      [Page 7]
  395.  
  396. RFC 2702                MPLS Traffic Engineering          September 1999
  397.  
  398.  
  399.    the possibility to automate aspects of the Traffic Engineering
  400.    function. This last consideration requires further investigation and
  401.    is beyond the scope of this manuscript.
  402.  
  403.    A note on terminology: The concept of MPLS traffic trunks is used
  404.    extensively in the remainder of this document. According to Li and
  405.    Rekhter [3], a traffic trunk is an aggregation of traffic flows of
  406.    the same class which are placed inside a Label Switched Path.
  407.    Essentially, a traffic trunk is an abstract representation of traffic
  408.    to which specific characteristics can be associated. It is useful to
  409.    view traffic trunks as objects that can be routed; that is, the path
  410.    through which a traffic trunk traverses can be changed. In this
  411.    respect, traffic trunks are similar to virtual circuits in ATM and
  412.    Frame Relay networks.  It is important, however, to emphasize that
  413.    there is a fundamental distinction between a traffic trunk and the
  414.    path, and indeed the LSP, through which it traverses. An LSP is a
  415.    specification of the label switched path through which the traffic
  416.    traverses. In practice, the terms LSP and traffic trunk are often
  417.    used synonymously. Additional characteristics of traffic trunks as
  418.    used in this manuscript are summarized in section 5.0.
  419.  
  420.    The attractiveness of  MPLS for Traffic Engineering can be attributed
  421.    to the following factors: (1) explicit label switched paths which are
  422.    not constrained by the destination based forwarding paradigm can be
  423.    easily created through manual administrative action or through
  424.    automated action by the underlying protocols, (2) LSPs can
  425.    potentially be efficiently maintained, (3) traffic trunks can be
  426.    instantiated and mapped onto LSPs, (4) a set of attributes can be
  427.    associated with traffic trunks which modulate their behavioral
  428.    characteristics, (5) a set of attributes can be associated with
  429.    resources which constrain the placement of LSPs and traffic trunks
  430.    across them, (6) MPLS allows for both traffic aggregation and
  431.    disaggregation whereas classical destination only based IP forwarding
  432.    permits only aggregation, (7) it is relatively easy to integrate a
  433.    "constraint-based routing" framework with MPLS, (8) a good
  434.    implementation of MPLS can offer significantly lower overhead than
  435.    competing alternatives for Traffic Engineering.
  436.  
  437.    Additionally, through explicit label switched paths, MPLS permits a
  438.    quasi circuit switching capability to be superimposed on the current
  439.    Internet routing model.  Many of the existing proposals for Traffic
  440.    Engineering over MPLS focus only on the potential to create explicit
  441.    LSPs. Although this capability is fundamental for Traffic
  442.    Engineering, it is not really sufficient.  Additional augmentations
  443.    are required to foster the actualization of policies leading to
  444.    performance optimization of large operational networks. Some of the
  445.    necessary augmentations are described in this manuscript.
  446.  
  447.  
  448.  
  449.  
  450. Awduche, et al.              Informational                      [Page 8]
  451.  
  452. RFC 2702                MPLS Traffic Engineering          September 1999
  453.  
  454.  
  455. 3.1 Induced MPLS Graph
  456.  
  457.    This subsection introduces the concept of an "induced MPLS graph"
  458.    which is central to Traffic Engineering in MPLS domains. An induced
  459.    MPLS graph is analogous to a virtual topology in an overlay model. It
  460.    is logically mapped onto the physical network through the selection
  461.    of LSPs for traffic trunks.
  462.  
  463.    An induced MPLS graph consists of a set of LSRs which comprise the
  464.    nodes of the graph and a set of LSPs which provide logical point to
  465.    point connectivity between the LSRs, and hence serve as the links of
  466.    the induced graph. it may be possible to construct hierarchical
  467.    induced MPLS graphs based on the concept of label stacks (see [1]).
  468.  
  469.    Induced MPLS graphs are important because the basic problem of
  470.    bandwidth management in an MPLS domain is the issue of how to
  471.    efficiently map an induced MPLS graph onto the physical network
  472.    topology.  The induced MPLS graph abstraction is formalized below.
  473.  
  474.    Let G = (V, E, c) be a capacitated graph depicting the physical
  475.    topology of the network. Here, V is the set of nodes in the network
  476.    and E is the set of links; that is, for v and w in V, the object
  477.    (v,w) is in E if v and w are directly connected under G. The
  478.    parameter "c" is a set of capacity and other constraints associated
  479.    with E and V. We will refer to G as the "base" network topology.
  480.  
  481.    Let H = (U, F, d) be  the induced MPLS graph, where U is a subset of
  482.    V representing the set of LSRs in the network, or more precisely the
  483.    set of LSRs that are the endpoints of at least one LSP. Here, F is
  484.    the set of LSPs, so that for x and y in U, the object (x, y) is in F
  485.    if there is an LSP with x and y as endpoints. The parameter "d" is
  486.    the set of demands and restrictions associated with F. Evidently, H
  487.    is a directed graph. It can be seen that H depends on the
  488.    transitivity characteristics of G.
  489.  
  490. 3.2 The Fundamental Problem of Traffic Engineering Over MPLS
  491.  
  492.    There are basically three fundamental problems that relate to Traffic
  493.    Engineering over MPLS.
  494.  
  495.    - The first problem concerns how to map packets onto forwarding
  496.      equivalence classes.
  497.  
  498.    - The second problem concerns how to map forwarding equivalence
  499.      classes onto traffic trunks.
  500.  
  501.    - The third problem concerns how to map traffic trunks onto the
  502.      physical network topology through label switched paths.
  503.  
  504.  
  505.  
  506. Awduche, et al.              Informational                      [Page 9]
  507.  
  508. RFC 2702                MPLS Traffic Engineering          September 1999
  509.  
  510.  
  511.    This document is not focusing on the first two problems listed.
  512.    (even-though they are quite important). Instead, the remainder of
  513.    this manuscript will focus on the capabilities that permit the third
  514.    mapping function to be performed in a manner resulting in efficient
  515.    and reliable network operations. This is really the problem of
  516.    mapping an induced MPLS graph (H) onto the "base" network topology
  517.    (G).
  518.  
  519. 4.0 Augmented  Capabilities for Traffic Engineering Over MPLS
  520.  
  521.    The previous sections reviewed the basic functions of Traffic
  522.    Engineering in the contemporary Internet. The applicability of MPLS
  523.    to that activity was also discussed. The remaining sections of this
  524.    manuscript describe the functional capabilities required to fully
  525.    support Traffic Engineering over MPLS in large networks.
  526.  
  527.    The proposed capabilities consist of:
  528.  
  529.    1. A set of attributes associated with traffic trunks which
  530.       collectively specify their behavioral characteristics.
  531.  
  532.    2. A set of attributes associated with resources which constrain
  533.       the placement of traffic trunks through them. These can also be
  534.       viewed as topology attribute constraints.
  535.  
  536.    3. A "constraint-based routing" framework which is used to select
  537.       paths for traffic trunks subject to constraints imposed by items
  538.       1) and 2) above. The constraint-based routing framework does not
  539.       have to be part of MPLS. However, the two need to be tightly
  540.       integrated together.
  541.  
  542.    The attributes associated with traffic trunks and resources, as well
  543.    as parameters associated with routing, collectively represent the
  544.    control variables which can be modified either through administrative
  545.    action or through automated agents to drive the network to a desired
  546.    state.
  547.  
  548.    In an operational network, it is highly desirable that these
  549.    attributes can be dynamically modified online by an operator without
  550.    adversely disrupting network operations.
  551.  
  552. 5.0 Traffic Trunk Attributes and Characteristics
  553.  
  554.    This section describes the desirable attributes which can be
  555.    associated with traffic trunks to influence their behavioral
  556.    characteristics.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Awduche, et al.              Informational                     [Page 10]
  563.  
  564. RFC 2702                MPLS Traffic Engineering          September 1999
  565.  
  566.  
  567.    First, the basic properties of traffic trunks (as used in this
  568.    manuscript) are summarized below:
  569.  
  570.     - A traffic trunk is an *aggregate* of traffic flows belonging
  571.       to the same class. In some contexts, it may be desirable to
  572.       relax this definition and allow traffic trunks to include
  573.       multi-class traffic aggregates.
  574.  
  575.     - In a single class service model, such as the current Internet,
  576.       a traffic trunk could encapsulate all of the traffic between an
  577.       ingress LSR and an egress LSR, or subsets thereof.
  578.  
  579.     - Traffic trunks are routable objects (similar to ATM VCs).
  580.  
  581.     - A traffic trunk is distinct from the LSP through which it
  582.       traverses. In operational contexts, a traffic trunk can be
  583.       moved from one path onto another.
  584.  
  585.     - A traffic trunk is unidirectional.
  586.  
  587.    In practice, a traffic trunk can be characterized by its ingress and
  588.    egress LSRs, the forwarding equivalence class which is mapped onto
  589.    it, and a set of attributes which determine its behavioral
  590.    characteristics.
  591.  
  592.    Two basic issues are of particular significance: (1) parameterization
  593.    of traffic trunks and (2) path placement and maintenance rules for
  594.    traffic trunks.
  595.  
  596. 5.1 Bidirectional Traffic Trunks
  597.  
  598.    Although traffic trunks are conceptually unidirectional, in many
  599.    practical contexts, it is useful to  simultaneously instantiate two
  600.    traffic trunks with the same endpoints, but which carry packets in
  601.    opposite directions. The two traffic trunks are logically coupled
  602.    together.  One trunk, called the forward trunk, carries traffic from
  603.    an originating node to a destination node. The other trunk, called
  604.    the backward trunk, carries traffic from the destination node to the
  605.    originating node. We refer to the amalgamation of two such traffic
  606.    trunks as one bidirectional traffic trunk (BTT) if the following two
  607.    conditions hold:
  608.  
  609.    - Both traffic trunks are instantiated through an atomic action at
  610.      one LSR, called the originator node, or through an atomic action
  611.      at a network management station.
  612.  
  613.    - Neither of the composite traffic trunks can exist without the
  614.      other. That is, both are instantiated and destroyed together.
  615.  
  616.  
  617.  
  618. Awduche, et al.              Informational                     [Page 11]
  619.  
  620. RFC 2702                MPLS Traffic Engineering          September 1999
  621.  
  622.  
  623.    The topological properties of BTTs should also be considered. A BTT
  624.    can be topologically symmetric or topologically asymmetric.  A BTT is
  625.    said to be "topologically symmetric" if its constituent traffic
  626.    trunks are routed through the same physical path, even though they
  627.    operate in opposite directions. If, however, the component traffic
  628.    trunks are routed through different physical paths, then the BTT is
  629.    said to be "topologically asymmetric."
  630.  
  631.    It should be noted that bidirectional traffic trunks are merely an
  632.    administrative convenience. In practice, most traffic engineering
  633.    functions can be implemented using only unidirectional traffic
  634.    trunks.
  635.  
  636. 5.2 Basic Operations on Traffic Trunks
  637.  
  638.    The basic operations on traffic trunks significant to Traffic
  639.    Engineering purposes are summarized below.
  640.  
  641.    - Establish: To create an instance of a traffic trunk.
  642.  
  643.    - Activate: To cause a traffic trunk to start passing traffic.
  644.      The establishment and activation of a traffic trunk are
  645.      logically separate events. They may, however, be implemented
  646.      or invoked as one atomic action.
  647.  
  648.    - Deactivate: To cause a traffic trunk to stop passing traffic.
  649.  
  650.    - Modify Attributes: To cause the attributes of a traffic trunk
  651.      to be modified.
  652.  
  653.    - Reroute: To cause a traffic trunk to change its route. This
  654.      can be done through administrative action or automatically
  655.      by the underlying protocols.
  656.  
  657.    - Destroy: To remove an instance of a traffic trunk from the
  658.      network and reclaim all resources allocated to it. Such
  659.      resources include label space and possibly available bandwidth.
  660.  
  661.    The above are considered the basic operations on traffic trunks.
  662.    Additional operations are also possible such as policing and traffic
  663.    shaping.
  664.  
  665. 5.3 Accounting and Performance Monitoring
  666.  
  667.    Accounting and performance monitoring capabilities are very important
  668.    to the billing and traffic characterization functions.  Performance
  669.    statistics obtained from accounting and performance monitoring
  670.  
  671.  
  672.  
  673.  
  674. Awduche, et al.              Informational                     [Page 12]
  675.  
  676. RFC 2702                MPLS Traffic Engineering          September 1999
  677.  
  678.  
  679.    systems can be used for traffic characterization, performance
  680.    optimization, and capacity planning within the Traffic Engineering
  681.    realm..
  682.  
  683.    The capability to obtain statistics at the traffic trunk level is so
  684.    important that it should be considered an essential requirement for
  685.    Traffic Engineering over MPLS.
  686.  
  687. 5.4 Basic Traffic Engineering Attributes of Traffic Trunks
  688.  
  689.    An attribute of a traffic trunk is a parameter assigned to it which
  690.    influences its behavioral characteristics.
  691.  
  692.    Attributes can be explicitly assigned to traffic trunks through
  693.    administration action or they can be implicitly assigned by the
  694.    underlying protocols when packets are classified and mapped into
  695.    equivalence classes at the ingress to an MPLS domain. Regardless of
  696.    how the attributes were originally assigned, for Traffic Engineering
  697.    purposes, it should be possible to administratively modify such
  698.    attributes.
  699.  
  700.    The basic attributes of traffic trunks  particularly significant for
  701.    Traffic Engineering are itemized below.
  702.  
  703.    - Traffic parameter attributes
  704.  
  705.    - Generic Path selection and maintenance attributes
  706.  
  707.    - Priority attribute
  708.  
  709.    - Preemption attribute
  710.  
  711.    - Resilience attribute
  712.  
  713.    - Policing  attribute
  714.  
  715.    The combination of traffic parameters and policing attributes is
  716.    analogous to usage parameter control in ATM networks. Most of the
  717.    attributes listed above have analogs in well established
  718.    technologies.  Consequently, it should be relatively straight forward
  719.    to map the traffic trunk attributes onto many existing switching and
  720.    routing architectures.
  721.  
  722.    Priority and preemption can be regarded as relational attributes
  723.    because they express certain binary relations between traffic trunks.
  724.    Conceptually, these binary relations determine the manner in which
  725.    traffic trunks interact with each other as they compete for network
  726.    resources during path establishment and path maintenance.
  727.  
  728.  
  729.  
  730. Awduche, et al.              Informational                     [Page 13]
  731.  
  732. RFC 2702                MPLS Traffic Engineering          September 1999
  733.  
  734.  
  735. 5.5 Traffic parameter attributes
  736.  
  737.    Traffic parameters can be used to capture the characteristics of the
  738.    traffic streams (or more precisely the forwarding equivalence class)
  739.    to be transported through the traffic trunk. Such characteristics may
  740.    include peak rates, average rates, permissible burst size, etc.  From
  741.    a traffic engineering perspective, the traffic parameters are
  742.    significant because they indicate the resource requirements of the
  743.    traffic trunk. This is useful for resource allocation and congestion
  744.    avoidance through anticipatory policies.
  745.  
  746.    For the purpose of bandwidth allocation, a single canonical value of
  747.    bandwidth requirements can be computed from a traffic trunk's traffic
  748.    parameters.  Techniques for performing these computations are well
  749.    known. One example of this is the theory of effective bandwidth.
  750.  
  751. 5.6 Generic Path Selection and Management Attributes
  752.  
  753.    Generic path selection and management attributes define the rules for
  754.    selecting the route taken by a traffic trunk as well as the rules for
  755.    maintenance of paths that are already established.
  756.  
  757.    Paths can be computed automatically by the underlying routing
  758.    protocols or they can be defined administratively by a network
  759.    operator. If there are no resource requirements or restrictions
  760.    associated with a traffic trunk, then a topology driven protocol can
  761.    be used to select its path. However, if resource requirements or
  762.    policy restrictions exist, then a constraint-based routing scheme
  763.    should be used for path selection.
  764.  
  765.    In Section 7, a constraint-based routing framework which can
  766.    automatically compute paths subject to a set of constraints is
  767.    described.  Issues pertaining to explicit paths instantiated through
  768.    administrative action are discussed in Section 5.6.1 below.
  769.  
  770.    Path management concerns all aspects pertaining to the maintenance of
  771.    paths traversed by traffic trunks.  In some operational contexts, it
  772.    is desirable that an MPLS implementation can dynamically reconfigure
  773.    itself, to adapt to some notion of change in "system state."
  774.    Adaptivity and resilience are aspects of dynamic path management.
  775.  
  776.    To guide the path selection and management process, a set of
  777.    attributes are required. The basic attributes and behavioral
  778.    characteristics associated with traffic trunk path selection and
  779.    management are described in the remainder of this sub-section.
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Awduche, et al.              Informational                     [Page 14]
  787.  
  788. RFC 2702                MPLS Traffic Engineering          September 1999
  789.  
  790.  
  791. 5.6.1 Administratively Specified Explicit Paths
  792.  
  793.    An administratively specified explicit path for a traffic trunk is
  794.    one which is configured through operator action. An administratively
  795.    specified path can be completely specified or partially specified. A
  796.    path is completely specified if all of the required hops between the
  797.    endpoints are indicated. A path is partially specified if only a
  798.    subset of intermediate hops are indicated. In this case, the
  799.    underlying protocols are required to complete the path. Due to
  800.    operator errors, an administratively specified path can be
  801.    inconsistent or illogical. The underlying protocols should be able to
  802.    detect such inconsistencies and provide appropriate feedback.
  803.  
  804.    A "path preference rule" attribute should be associated with
  805.    administratively specified explicit paths.  A path preference rule
  806.    attribute is a binary variable which  indicates whether the
  807.    administratively configured explicit path is "mandatory" or "non-
  808.    mandatory."
  809.  
  810.    If an administratively specified explicit path is selected with a
  811.    "mandatory attribute, then that path (and only that path) must be
  812.    used. If a mandatory path is topological infeasible (e.g. the two
  813.    endpoints are topologically partitioned), or if the path cannot be
  814.    instantiated because the available resources are inadequate, then the
  815.    path setup process fails. In other words, if a path is specified as
  816.    mandatory, then an alternate path cannot be used regardless of
  817.    prevailing circumstance.  A mandatory path which is successfully
  818.    instantiated is also implicitly pinned. Once the path is instantiated
  819.    it cannot be changed except through deletion and instantiation of a
  820.    new path.
  821.  
  822.    However, if an administratively specified explicit path is selected
  823.    with a "non-mandatory" preference rule attribute value, then the path
  824.    should be used if feasible.  Otherwise, an alternate path can be
  825.    chosen instead by the underlying protocols.
  826.  
  827. 5.6.2 Hierarchy of Preference Rules For Multi-Paths
  828.  
  829.    In some practical contexts, it can be useful to have the ability to
  830.    administratively specify a set of candidate explicit paths for a
  831.    given traffic trunk and define a hierarchy of preference relations on
  832.    the paths. During path establishment, the preference rules are
  833.    applied to select a suitable path from the candidate list. Also,
  834.    under failure scenarios the preference rules are applied to select an
  835.    alternate path from the candidate list.
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Awduche, et al.              Informational                     [Page 15]
  843.  
  844. RFC 2702                MPLS Traffic Engineering          September 1999
  845.  
  846.  
  847. 5.6.3 Resource Class Affinity Attributes
  848.  
  849.    Resource class affinity attributes associated with a traffic trunk
  850.    can be used to specify the class of resources (see Section 6) which
  851.    are to be explicitly included or excluded from the path of the
  852.    traffic trunk. These are policy attributes which can be used to
  853.    impose additional constraints on the path traversed by a given
  854.    traffic trunk.  Resource class affinity attributes for a traffic can
  855.    be specified as a sequence of tuples:
  856.  
  857.     <resource-class, affinity>; <resource-class, affinity>; ..
  858.  
  859.    The resource-class parameter identifies a resource class for which an
  860.    affinity relationship is defined with respect to the traffic trunk.
  861.    The affinity parameter indicates the affinity relationship; that is,
  862.    whether members of the resource class are to be included or excluded
  863.    from the path of the traffic trunk. Specifically, the affinity
  864.    parameter may be a binary variable which takes one of the following
  865.    values: (1) explicit inclusion, and (2) explicit exclusion.
  866.  
  867.    If the affinity attribute is a binary variable, it may be possible to
  868.    use Boolean expressions to specify the resource class affinities
  869.    associated with a given traffic trunk.
  870.  
  871.    If no resource class affinity attributes are specified, then a "don't
  872.    care" affinity relationship is assumed to hold between the traffic
  873.    trunk and all resources. That is, there is no requirement to
  874.    explicitly include or exclude any resources from the traffic trunk's
  875.    path. This should be the default in practice.
  876.  
  877.    Resource class affinity attributes are very useful and powerful
  878.    constructs because they can be used to implement a variety of
  879.    policies. For example, they can be used to contain certain traffic
  880.    trunks within specific topological regions of the network.
  881.  
  882.    A "constraint-based routing" framework (see section 7.0) can be used
  883.    to compute an explicit path for a traffic trunk subject to resource
  884.    class affinity constraints in the following manner:
  885.  
  886.    1. For explicit inclusion, prune all resources not belonging
  887.       to the specified classes prior to performing path computation.
  888.  
  889.    2. For explicit exclusion, prune all resources  belonging to the
  890.       specified classes before performing path placement computations.
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Awduche, et al.              Informational                     [Page 16]
  899.  
  900. RFC 2702                MPLS Traffic Engineering          September 1999
  901.  
  902.  
  903. 5.6.4 Adaptivity Attribute
  904.  
  905.    Network characteristics and state change over time. For example, new
  906.    resources become available, failed resources become reactivated, and
  907.    allocated resources become deallocated. In general, sometimes more
  908.    efficient paths become available.  Therefore, from a Traffic
  909.    Engineering perspective, it is necessary to have administrative
  910.    control parameters that can be used to specify how traffic trunks
  911.    respond to this dynamism. In some scenarios, it might be desirable to
  912.    dynamically change the paths of certain traffic trunks in response to
  913.    changes in network state. This process is called re-optimization.  In
  914.    other scenarios, re-optimization might be very undesirable.
  915.  
  916.    An Adaptivity attribute is a part of the path maintenance parameters
  917.    associated with traffic trunks. The adaptivity attribute associated
  918.    with a traffic trunk indicates whether the trunk is subject to re-
  919.    optimization.  That is, an adaptivity attribute is a binary variable
  920.    which takes one of the following values: (1) permit re-optimization
  921.    and (2) disable re-optimization.
  922.  
  923.    If re-optimization is enabled, then a traffic trunk can be rerouted
  924.    through different paths by the underlying protocols in response to
  925.    changes in network state (primarily changes in resource
  926.    availability). Conversely, if re-optimization is disabled, then the
  927.    traffic trunk is "pinned" to its established path and cannot be
  928.    rerouted in response to changes in network state.
  929.  
  930.    Stability is a major concern when re-optimization is permitted. To
  931.    promote stability, an MPLS implementation should not be too reactive
  932.    to the evolutionary dynamics of the network. At the same time, it
  933.    must adapt fast enough so that optimal use can be made of network
  934.    assets. This implies that the frequency of re-optimization should be
  935.    administratively configurable to allow for tuning.
  936.  
  937.    It is to be noted that re-optimization is distinct from resilience. A
  938.    different attribute is used to specify the resilience characteristics
  939.    of a traffic trunk (see section 5.9).  In practice, it would seem
  940.    reasonable to expect traffic trunks subject to re-optimization to be
  941.    implicitly resilient to failures along their paths. However, a
  942.    traffic trunk which is not subject to re-optimization and whose path
  943.    is not administratively specified with a "mandatory" attribute can
  944.    also be required to be resilient to link and node failures along its
  945.    established path
  946.  
  947.    Formally, it can be stated that adaptivity to state evolution through
  948.    re-optimization implies resilience to failures, whereas resilience to
  949.    failures does not imply general adaptivity through re-optimization to
  950.    state changes.
  951.  
  952.  
  953.  
  954. Awduche, et al.              Informational                     [Page 17]
  955.  
  956. RFC 2702                MPLS Traffic Engineering          September 1999
  957.  
  958.  
  959. 5.6.5 Load Distribution Across Parallel Traffic Trunks
  960.  
  961.    Load distribution across multiple parallel traffic trunks between two
  962.    nodes is an important consideration.  In many practical contexts, the
  963.    aggregate traffic between two nodes may be such that no single link
  964.    (hence no single path) can carry the load. However, the aggregate
  965.    flow might be less than the maximum permissible flow across a "min-
  966.    cut" that partitions the two nodes. In this case, the only feasible
  967.    solution is to appropriately divide the aggregate traffic into sub-
  968.    streams and route the sub-streams through multiple paths between the
  969.    two nodes.
  970.  
  971.    In an MPLS domain, this problem can be addressed by instantiating
  972.    multiple traffic trunks between the two nodes, such that each traffic
  973.    trunk carries a proportion of the aggregate traffic. Therefore, a
  974.    flexible means of load assignment to multiple parallel traffic trunks
  975.    carrying traffic between a pair of nodes is required.
  976.  
  977.    Specifically, from an operational perspective, in situations where
  978.    parallel traffic trunks are warranted,  it would be useful to have
  979.    some attribute that can be used to indicate the relative proportion
  980.    of traffic to be carried by each traffic trunk. The underlying
  981.    protocols will then map the load onto the traffic trunks according to
  982.    the specified proportions. It is also, generally desirable to
  983.    maintain packet ordering between packets belong to the same micro-
  984.    flow (same source address, destination address, and port number).
  985.  
  986. 5.7 Priority attribute
  987.  
  988.    The priority attribute defines the relative importance of traffic
  989.    trunks.  If a constraint-based routing framework is used with MPLS,
  990.    then priorities become very important because they can be used to
  991.    determine the order in which path selection is done for traffic
  992.    trunks at connection establishment and under fault scenarios.
  993.  
  994.    Priorities are also important in implementations  permitting
  995.    preemption because they can be used to impose a partial order on the
  996.    set of traffic trunks according to which preemptive policies can be
  997.    actualized.
  998.  
  999. 5.8 Preemption attribute
  1000.  
  1001.    The preemption attribute determines whether a traffic trunk can
  1002.    preempt another traffic trunk from a given path, and whether another
  1003.    traffic trunk can preempt a specific traffic trunk.  Preemption is
  1004.    useful for both traffic oriented and resource oriented performance
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Awduche, et al.              Informational                     [Page 18]
  1011.  
  1012. RFC 2702                MPLS Traffic Engineering          September 1999
  1013.  
  1014.  
  1015.    objectives. Preemption can used to assure that high priority traffic
  1016.    trunks can always be routed through relatively favorable paths within
  1017.    a differentiated services environment.
  1018.  
  1019.    Preemption can also be used to implement various prioritized
  1020.    restoration policies following fault events.
  1021.  
  1022.    The preemption attribute can be used to specify four preempt modes
  1023.    for a traffic trunk: (1) preemptor enabled, (2) non-preemptor, (3)
  1024.    preemptable, and (4) non-preemptable. A preemptor enabled traffic
  1025.    trunk can preempt lower priority traffic trunks designated as
  1026.    preemptable. A traffic specified as non-preemptable cannot be
  1027.    preempted by any other trunks, regardless of relative priorities. A
  1028.    traffic trunk designated as preemptable can be preempted by higher
  1029.    priority trunks which are preemptor enabled.
  1030.  
  1031.    It is trivial to see that some of the preempt modes are mutually
  1032.    exclusive. Using the numbering scheme depicted above, the feasible
  1033.    preempt mode combinations for a given traffic trunk are as follows:
  1034.    (1, 3), (1, 4), (2, 3), and (2, 4). The (2, 4) combination should be
  1035.    the default.
  1036.  
  1037.    A traffic trunk, say "A", can preempt another traffic trunk, say "B",
  1038.    only if *all* of the following five conditions hold: (i) "A" has a
  1039.    relatively higher priority than "B", (ii) "A" contends for a resource
  1040.    utilized by "B", (iii) the resource cannot concurrently accommodate
  1041.    "A" and "B" based on certain decision criteria, (iv) "A" is preemptor
  1042.    enabled, and (v) "B" is preemptable.
  1043.  
  1044.    Preemption is not considered a mandatory attribute under the current
  1045.    best effort Internet service model although it is useful. However, in
  1046.    a differentiated services scenario, the need for preemption becomes
  1047.    more compelling. Moreover, in the emerging optical internetworking
  1048.    architectures, where some protection and restoration functions may be
  1049.    migrated from the optical layer to data network elements (such as
  1050.    gigabit and terabit label switching routers) to reduce costs,
  1051.    preemptive strategies can be used to reduce the restoration time for
  1052.    high priority traffic trunks under fault conditions.
  1053.  
  1054. 5.9 Resilience Attribute
  1055.  
  1056.    The resilience attribute determines the behavior of a traffic trunk
  1057.    under fault conditions. That is, when a fault occurs along the path
  1058.    through which the traffic trunk traverses. The following basic
  1059.    problems need to be addressed under such circumstances: (1) fault
  1060.    detection, (2) failure notification, (3) recovery and service
  1061.    restoration. Obviously, an MPLS implementation will have to
  1062.    incorporate mechanisms to address these issues.
  1063.  
  1064.  
  1065.  
  1066. Awduche, et al.              Informational                     [Page 19]
  1067.  
  1068. RFC 2702                MPLS Traffic Engineering          September 1999
  1069.  
  1070.  
  1071.    Many recovery policies can be specified for traffic trunks whose
  1072.    established paths are impacted by faults. The following are examples
  1073.    of feasible schemes:
  1074.  
  1075.    1. Do not reroute the traffic trunk. For example, a survivability
  1076.       scheme may already be in place, provisioned through an
  1077.       alternate mechanism, which guarantees service continuity
  1078.       under failure scenarios without the need to reroute traffic
  1079.       trunks. An example of such an alternate scheme (certainly
  1080.       many others exist), is a situation whereby multiple parallel
  1081.       label switched paths are provisioned between two nodes, and
  1082.       function in a manner such that failure of one LSP causes the
  1083.       traffic trunk placed on it to be mapped onto the remaining LSPs
  1084.       according to some well defined policy.
  1085.  
  1086.    2. Reroute through a feasible path with enough resources. If none
  1087.       exists, then do not reroute.
  1088.  
  1089.    3. Reroute through any available path regardless of resource
  1090.       constraints.
  1091.  
  1092.    4. Many other schemes are possible including some which might be
  1093.       combinations of the above.
  1094.  
  1095.    A "basic" resilience attribute indicates the recovery procedure to be
  1096.    applied to traffic trunks whose paths are impacted by faults.
  1097.    Specifically, a "basic" resilience attribute is a binary variable
  1098.    which determines whether the target traffic trunk is to be rerouted
  1099.    when segments of its path fail. "Extended" resilience attributes can
  1100.    be used to specify detailed actions to be taken under fault
  1101.    scenarios.  For example, an extended resilience attribute might
  1102.    specify a set of alternate paths to use under fault conditions, as
  1103.    well as the rules that govern the relative preference of each
  1104.    specified path.
  1105.  
  1106.    Resilience attributes mandate close interaction between MPLS and
  1107.    routing.
  1108.  
  1109. 5.10 Policing attribute
  1110.  
  1111.    The policing attribute determines the actions that should be taken by
  1112.    the underlying protocols when a traffic trunk becomes non-compliant.
  1113.    That is, when a traffic trunk exceeds its contract as specified in
  1114.    the traffic parameters.  Generally, policing attributes can indicate
  1115.    whether a non-conformant traffic trunk is to be rate limited, tagged,
  1116.    or simply forwarded without any policing action.  If policing is
  1117.    used, then adaptations of established algorithms such as the ATM
  1118.    Forum's GCRA [11] can be used to perform this function.
  1119.  
  1120.  
  1121.  
  1122. Awduche, et al.              Informational                     [Page 20]
  1123.  
  1124. RFC 2702                MPLS Traffic Engineering          September 1999
  1125.  
  1126.  
  1127.    Policing is necessary in many operational scenarios, but is quite
  1128.    undesirable in some others. In general, it is usually desirable to
  1129.    police at the ingress to a network (to enforce compliance with
  1130.    service level agreements) and to minimize policing within the core,
  1131.    except when capacity constraints dictate otherwise.
  1132.  
  1133.    Therefore, from a Traffic Engineering perspective, it is necessary to
  1134.    be able to administratively enable or disable traffic policing for
  1135.    each traffic trunk.
  1136.  
  1137. 6.0 Resource Attributes
  1138.  
  1139.    Resource attributes are part of the topology state parameters, which
  1140.    are used to constrain the routing of traffic trunks through specific
  1141.    resources.
  1142.  
  1143. 6.1 Maximum Allocation Multiplier
  1144.  
  1145.    The maximum allocation multiplier (MAM) of a resource is an
  1146.    administratively configurable attribute which determines the
  1147.    proportion of the resource that is available for allocation to
  1148.    traffic trunks.  This attribute is mostly applicable to link
  1149.    bandwidth. However,  it can also be applied to buffer resources on
  1150.    LSRs. The concept of MAM is analogous to the concepts of subscription
  1151.    and booking factors in frame relay and ATM networks.
  1152.  
  1153.    The values of the MAM can be chosen so that a resource can be under-
  1154.    allocated or over-allocated. A resource is said  to be under-
  1155.    allocated if the aggregate demands of all traffic trunks (as
  1156.    expressed in the trunk traffic parameters) that can be allocated to
  1157.    it are always less than the capacity of the resource. A resource is
  1158.    said to be over-allocated if the aggregate demands of all traffic
  1159.    trunks allocated to it can exceed the capacity of the resource.
  1160.  
  1161.    Under-allocation can be used to bound the utilization of resources.
  1162.    However,the situation under MPLS is more complex than in circuit
  1163.    switched schemes because under MPLS, some flows can be routed via
  1164.    conventional hop by hop protocols (also via explicit paths) without
  1165.    consideration for resource constraints.
  1166.  
  1167.    Over-allocation can be used to take advantage of the statistical
  1168.    characteristics of traffic in order to implement more efficient
  1169.    resource allocation policies. In particular, over-allocation can be
  1170.    used in situations where the peak demands of traffic trunks do not
  1171.    coincide in time.
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Awduche, et al.              Informational                     [Page 21]
  1179.  
  1180. RFC 2702                MPLS Traffic Engineering          September 1999
  1181.  
  1182.  
  1183. 6.2 Resource Class Attribute
  1184.  
  1185.    Resource class attributes are administratively assigned parameters
  1186.    which express some notion of "class" for resources. Resource class
  1187.    attributes can be viewed as "colors" assigned to resources such that
  1188.    the set of resources with the same "color" conceptually belong to the
  1189.    same class. Resource class attributes can be used to implement a
  1190.    variety of policies. The key resources of interest here are links.
  1191.    When applied to links, the resource class attribute effectively
  1192.    becomes  an aspect of the "link state" parameters.
  1193.  
  1194.    The concept of resource class attributes is a powerful abstraction.
  1195.    From a Traffic Engineering perspective, it can be used to implement
  1196.    many policies with regard to both traffic and resource oriented
  1197.    performance optimization. Specifically, resource class attributes can
  1198.    be used to:
  1199.  
  1200.    1. Apply uniform policies to a set of resources that do not need
  1201.       to be in the same topological region.
  1202.  
  1203.    2. Specify the relative preference of sets of resources for
  1204.       path placement of traffic trunks.
  1205.  
  1206.    3. Explicitly restrict the placement of traffic trunks
  1207.       to  specific subsets of resources.
  1208.  
  1209.    4. Implement generalized inclusion / exclusion policies.
  1210.  
  1211.    5. Enforce traffic locality containment policies. That is,
  1212.       policies    that seek to contain local traffic within
  1213.       specific topological regions of the network.
  1214.  
  1215.    Additionally, resource class attributes can be used for
  1216.    identification purposes.
  1217.  
  1218.    In general, a resource can be assigned more than one resource class
  1219.    attribute. For example, all of the OC-48 links in a given network may
  1220.    be assigned a distinguished resource class attribute. The subsets of
  1221.    OC-48 links which exist with a given abstraction domain of the
  1222.    network may be assigned additional resource class attributes in order
  1223.    to implement specific containment policies, or to architect the
  1224.    network in a certain manner.
  1225.  
  1226. 7.0 Constraint-Based Routing
  1227.  
  1228.    This section discusses the issues pertaining to constraint-based
  1229.    routing in MPLS domains. In contemporary terminology, constraint-
  1230.    based routing is often referred to as "QoS Routing" see [5,6,7,10].
  1231.  
  1232.  
  1233.  
  1234. Awduche, et al.              Informational                     [Page 22]
  1235.  
  1236. RFC 2702                MPLS Traffic Engineering          September 1999
  1237.  
  1238.  
  1239.    This document uses the term "constraint-based routing" however,
  1240.    because it better captures the functionality envisioned, which
  1241.    generally encompasses QoS routing as a subset.
  1242.  
  1243.    constraint-based routing enables a demand driven, resource
  1244.    reservation aware, routing paradigm to co-exist with current topology
  1245.    driven hop by hop Internet interior gateway protocols.
  1246.  
  1247.    A constraint-based routing framework uses the following as input:
  1248.  
  1249.     - The attributes associated with traffic trunks.
  1250.  
  1251.     - The attributes associated with resources.
  1252.  
  1253.     - Other topology state information.
  1254.  
  1255.    Based on this information, a constraint-based routing process on each
  1256.    node automatically computes explicit routes for each traffic trunk
  1257.    originating from the node. In this case, an explicit route for each
  1258.    traffic trunk is a specification of a label switched path that
  1259.    satisfies the demand requirements expressed in the trunk's
  1260.    attributes, subject to constraints imposed by resource availability,
  1261.    administrative policy, and other topology state information.
  1262.  
  1263.    A constraint-based routing framework can greatly reduce the level of
  1264.    manual configuration and intervention required to actualize Traffic
  1265.    Engineering policies.
  1266.  
  1267.    In practice, the Traffic Engineer, an operator, or even an automaton
  1268.    will specify the endpoints of a traffic trunk and assign a set of
  1269.    attributes to the trunk which encapsulate the performance
  1270.    expectations and behavioral characteristics of the trunk. The
  1271.    constraint-based routing framework is then expected to find a
  1272.    feasible path to satisfy the expectations.  If necessary, the Traffic
  1273.    Engineer or a traffic engineering support system can then use
  1274.    administratively configured explicit routes to perform fine grained
  1275.    optimization.
  1276.  
  1277. 7.1 Basic Features of Constraint-Based Routing
  1278.  
  1279.    A constraint-based routing framework should at least have the
  1280.    capability to automatically obtain a basic feasible solution to the
  1281.    traffic trunk path placement problem.
  1282.  
  1283.    In general, the constraint-based routing problem is known to be
  1284.    intractable for most realistic constraints. However, in practice, a
  1285.    very simple well known heuristic (see e.g. [9]) can be used to find a
  1286.    feasible path if one exists:
  1287.  
  1288.  
  1289.  
  1290. Awduche, et al.              Informational                     [Page 23]
  1291.  
  1292. RFC 2702                MPLS Traffic Engineering          September 1999
  1293.  
  1294.  
  1295.     - First prune resources that do not satisfy the requirements of
  1296.       the traffic trunk attributes.
  1297.  
  1298.     - Next, run a shortest path algorithm on the residual graph.
  1299.  
  1300.    Clearly, if a feasible path exists for a single traffic trunk, then
  1301.    the above simple procedure will find it. Additional rules can be
  1302.    specified to break ties and perform further optimizations.  In
  1303.    general, ties should be broken so that congestion is minimized.  When
  1304.    multiple traffic trunks are to be routed, however, it can be shown
  1305.    that the above algorithm may not always find a mapping, even when a
  1306.    feasible mapping exists.
  1307.  
  1308. 7.2 Implementation Considerations
  1309.  
  1310.    Many commercial implementations of frame relay and ATM switches
  1311.    already support some notion of constraint-based routing. For such
  1312.    devices or for the novel MPLS centric contraptions devised therefrom,
  1313.    it should be relatively easy to extend the current constraint-based
  1314.    routing implementations to accommodate the peculiar requirements of
  1315.    MPLS.
  1316.  
  1317.    For routers that use topology driven hop by hop IGPs, constraint-
  1318.    based routing can be incorporated in at least one of two ways:
  1319.  
  1320.    1. By extending the current IGP protocols such as OSPF and IS-IS to
  1321.       support constraint-based routing. Effort is already underway to
  1322.       provide such extensions to OSPF (see [5,7]).
  1323.  
  1324.    2. By adding a constraint-based routing process to each router which
  1325.       can co-exist with current IGPs. This scenario is depicted
  1326.       in Figure 1.
  1327.  
  1328.          ------------------------------------------
  1329.         |          Management Interface            |
  1330.          ------------------------------------------
  1331.             |                 |                 |
  1332.      ------------     ------------------    --------------
  1333.     |    MPLS    |<->| Constraint-Based |  | Conventional |
  1334.     |            |   | Routing Process  |  | IGP Process  |
  1335.      ------------     ------------------    --------------
  1336.                            |                  |
  1337.              -----------------------    --------------
  1338.             | Resource  Attribute   |  | Link State   |
  1339.             | Availability Database |  | Database     |
  1340.              -----------------------    --------------
  1341.  
  1342.     Figure 1. Constraint-Based Routing Process on Layer 3 LSR
  1343.  
  1344.  
  1345.  
  1346. Awduche, et al.              Informational                     [Page 24]
  1347.  
  1348. RFC 2702                MPLS Traffic Engineering          September 1999
  1349.  
  1350.  
  1351.    There are many important details associated with implementing
  1352.    constraint-based routing on Layer 3 devices which we do not discuss
  1353.    here. These include the following:
  1354.  
  1355.    - Mechanisms for exchange of topology state information
  1356.      (resource availability information, link state information,
  1357.      resource attribute information) between constraint-based
  1358.      routing processes.
  1359.  
  1360.    - Mechanisms for maintenance of topology state information.
  1361.  
  1362.    - Interaction between constraint-based routing processes and
  1363.      conventional IGP processes.
  1364.  
  1365.    - Mechanisms to accommodate the adaptivity requirements of
  1366.      traffic trunks.
  1367.  
  1368.    - Mechanisms to accommodate the resilience and survivability
  1369.      requirements of traffic trunks.
  1370.  
  1371.    In summary, constraint-based routing assists in performance
  1372.    optimization of operational networks by automatically finding
  1373.    feasible paths that satisfy a set of constraints for traffic trunks.
  1374.    It can drastically reduce the amount of administrative explicit path
  1375.    configuration and manual intervention required to achieve Traffic
  1376.    Engineering objectives.
  1377.  
  1378. 8.0 Conclusion
  1379.  
  1380.    This manuscript presented a set of requirements for Traffic
  1381.    Engineering over MPLS. Many capabilities were described aimed at
  1382.    enhancing the applicability of MPLS to Traffic Engineering in the
  1383.    Internet.
  1384.  
  1385.    It should be noted that some of the issues described here can be
  1386.    addressed by incorporating a minimal set of building blocks into
  1387.    MPLS, and then using a network management superstructure to extend
  1388.    the functionality in order to realize the requirements. Also, the
  1389.    constraint-based routing framework does not have to be part of the
  1390.    core MPLS specifications. However, MPLS does require some interaction
  1391.    with a constraint-based routing framework in order to meet the
  1392.    requirements.
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Awduche, et al.              Informational                     [Page 25]
  1403.  
  1404. RFC 2702                MPLS Traffic Engineering          September 1999
  1405.  
  1406.  
  1407. 9.0 Security Considerations
  1408.  
  1409.    This document does not introduce new security issues beyond those
  1410.    inherent in MPLS and may use the same mechanisms proposed for this
  1411.    technology. It is, however, specifically important that manipulation
  1412.    of administratively configurable parameters be executed in a secure
  1413.    manner by authorized entities.
  1414.  
  1415. 10.0 References
  1416.  
  1417.    [1]  Rosen, E., Viswanathan, A. and R. Callon, "A Proposed
  1418.         Architecture for MPLS", Work in Progress.
  1419.  
  1420.    [2]  Callon, R., Doolan, P., Feldman, N., Fredette, A., Swallow, G.
  1421.         and A. Viswanathan, "A Framework for Multiprotocol Label
  1422.         Switching", Work in Progress.
  1423.  
  1424.    [3]  Li, T. and Y. Rekhter, "Provider Architecture for Differentiated
  1425.         Services and Traffic Engineering (PASTE)", RFC 2430, October
  1426.         1998.
  1427.  
  1428.    [4]  Rekhter, Y., Davie, B., Katz, D., Rosen, E. and  G. Swallow,
  1429.         "Cisco Systems' Tag Switching Architecture - Overview", RFC
  1430.         2105, February 1997.
  1431.  
  1432.    [5]  Zhang, Z., Sanchez, C., Salkewicz, B. and E. Crawley "Quality of
  1433.         Service Extensions to OSPF", Work in Progress.
  1434.  
  1435.    [6]  Crawley, E., Nair, F., Rajagopalan, B. and H. Sandick, "A
  1436.         Framework for QoS Based Routing in the Internet", RFC 2386,
  1437.         August 1998.
  1438.  
  1439.    [7]  Guerin, R., Kamat, S., Orda, A., Przygienda, T. and D. Williams,
  1440.         "QoS Routing Mechanisms and OSPF Extensions", RFC 2676, August
  1441.         1999.
  1442.  
  1443.    [8]  C. Yang and A. Reddy, "A Taxonomy for Congestion Control
  1444.         Algorithms in Packet Switching Networks," IEEE Network Magazine,
  1445.         Volume 9, Number 5, July/August 1995.
  1446.  
  1447.    [9]  W. Lee, M. Hluchyi, and P. Humblet, "Routing Subject to Quality
  1448.         of Service Constraints in Integrated Communication Networks,"
  1449.         IEEE Network, July 1995, pp 46-55.
  1450.  
  1451.    [10] ATM Forum, "Traffic Management Specification: Version 4.0" April
  1452.         1996.
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Awduche, et al.              Informational                     [Page 26]
  1459.  
  1460. RFC 2702                MPLS Traffic Engineering          September 1999
  1461.  
  1462.  
  1463. 11.0 Acknowledgments
  1464.  
  1465.    The authors would like to thank Yakov Rekhter for his review of an
  1466.    earlier draft of this document. The authors would also like to thank
  1467.    Louis Mamakos and Bill Barns for their helpful suggestions, and
  1468.    Curtis Villamizar for providing some useful feedback.
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514. Awduche, et al.              Informational                     [Page 27]
  1515.  
  1516. RFC 2702                MPLS Traffic Engineering          September 1999
  1517.  
  1518.  
  1519. 12.0 Authors' Addresses
  1520.  
  1521.    Daniel O. Awduche
  1522.    UUNET (MCI Worldcom)
  1523.    3060 Williams Drive
  1524.    Fairfax, VA 22031
  1525.  
  1526.    Phone: +1 703-208-5277
  1527.    EMail: awduche@uu.net
  1528.  
  1529.  
  1530.    Joe Malcolm
  1531.    UUNET  (MCI Worldcom)
  1532.    3060 Williams Drive
  1533.    Fairfax, VA 22031
  1534.  
  1535.    Phone: +1 703-206-5895
  1536.    EMail: jmalcolm@uu.net
  1537.  
  1538.  
  1539.    Johnson Agogbua
  1540.    UUNET  (MCI Worldcom)
  1541.    3060 Williams Drive
  1542.    Fairfax, VA 22031
  1543.  
  1544.    Phone: +1 703-206-5794
  1545.    EMail: ja@uu.net
  1546.  
  1547.  
  1548.    Mike O'Dell
  1549.    UUNET  (MCI Worldcom)
  1550.    3060 Williams Drive
  1551.    Fairfax, VA 22031
  1552.  
  1553.    Phone: +1 703-206-5890
  1554.    EMail: mo@uu.net
  1555.  
  1556.  
  1557.    Jim McManus
  1558.    UUNET  (MCI Worldcom)
  1559.    3060 Williams Drive
  1560.    Fairfax, VA 22031
  1561.  
  1562.    Phone: +1 703-206-5607
  1563.    EMail: jmcmanus@uu.net
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570. Awduche, et al.              Informational                     [Page 28]
  1571.  
  1572. RFC 2702                MPLS Traffic Engineering          September 1999
  1573.  
  1574.  
  1575. 13.0  Full Copyright Statement
  1576.  
  1577.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  1578.  
  1579.    This document and translations of it may be copied and furnished to
  1580.    others, and derivative works that comment on or otherwise explain it
  1581.    or assist in its implementation may be prepared, copied, published
  1582.    and distributed, in whole or in part, without restriction of any
  1583.    kind, provided that the above copyright notice and this paragraph are
  1584.    included on all such copies and derivative works.  However, this
  1585.    document itself may not be modified in any way, such as by removing
  1586.    the copyright notice or references to the Internet Society or other
  1587.    Internet organizations, except as needed for the purpose of
  1588.    developing Internet standards in which case the procedures for
  1589.    copyrights defined in the Internet Standards process must be
  1590.    followed, or as required to translate it into languages other than
  1591.    English.
  1592.  
  1593.    The limited permissions granted above are perpetual and will not be
  1594.    revoked by the Internet Society or its successors or assigns.
  1595.  
  1596.    This document and the information contained herein is provided on an
  1597.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1598.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1599.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1600.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1601.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1602.  
  1603. Acknowledgement
  1604.  
  1605.    Funding for the RFC Editor function is currently provided by the
  1606.    Internet Society.
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626. Awduche, et al.              Informational                     [Page 29]
  1627.  
  1628.