home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-mpls-framework-00.txt < prev    next >
Text File  |  1997-05-12  |  107KB  |  2,466 lines

  1.  
  2.  
  3.  
  4.  
  5. Network Working Group                                         R. Callon
  6. INTERNET DRAFT                                   Cascade Communications
  7. <draft-ietf-mpls-framework-00.txt>                            P. Doolan
  8.                                                           Cisco Systems
  9.                                                              N. Feldman
  10.                                                               IBM Corp.
  11.                                                             A. Fredette
  12.                                                            Bay Networks
  13.                                                              G. Swallow
  14.                                                           Cisco Systems
  15.                                                          A. Viswanathan
  16.                                                               IBM Corp.
  17.                                                            May 12, 1997
  18.                                                    Expires Nov 12, 1997
  19.  
  20.              A Framework for Multiprotocol Label Switching
  21.  
  22. Status of this Memo
  23.  
  24.    This document is an Internet-Draft.  Internet-Drafts are working
  25.    documents of the Internet Engineering Task Force (IETF), its areas,
  26.    and its working groups.  Note that other groups may also distribute
  27.    working documents as Internet-Drafts.
  28.  
  29.    Internet-Drafts are draft documents valid for a maximum of six months
  30.    and may be updated, replaced, or obsoleted by other documents at any
  31.    time.  It is inappropriate to use Internet-Drafts as reference
  32.    material or to cite them other than as ``work in progress.''
  33.  
  34.    To learn the current status of any Internet-Draft, please check the
  35.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  36.    Directories on ds.internic.net (US East Coast), nic.nordu.net
  37.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  38.    Rim).  Distribution of this memo is unlimited.
  39.  
  40. Abstract
  41.  
  42.    This document discusses technical issues and requirements for the
  43.    Multiprotocol Label Switching working group. This is an initial draft
  44.    document, which will evolve and expand over time. It is the intent of
  45.    this document to produce a coherent description of all significant
  46.    approaches which were and are being considered by the working group.
  47.    Selection of specific approaches, making choices regarding
  48.    engineering tradeoffs, and detailed protocol specification, are
  49.    outside of the scope of this framework document.
  50.  
  51.    Note that this document is at an early stage, and that most of the
  52.    detailed technical discussion is only in a rough form. Additional
  53.  
  54.  
  55.  
  56. Callon et al.          Expires November 12, 1997                [Page 1]
  57.  
  58. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  59.  
  60.  
  61.    text will be provided over time from a number of sources.
  62.  
  63. Acknowledgments
  64.  
  65.    The ideas and text in this document have been collected from a number
  66.    of sources and comments received. We would like to thank Jim Luciani,
  67.    Andy Malis, Yakov Rekhter, Eric Rosen, and Vijay Srinivasan for their
  68.    inputs and ideas.
  69.  
  70.  
  71. 1. Introduction and Requirements
  72.  
  73. 1.1 Overview of MPLS
  74.  
  75.    The primary goal of the MPLS working group is to standardize a base
  76.    technology that integrates the label swapping forwarding paradigm
  77.    with network layer routing. This base technology (label swapping) is
  78.    expected to improve the price/performance of network layer routing,
  79.    improve the scalability of the network layer, and provide greater
  80.    flexibility in the delivery of (new) routing services (by allowing
  81.    new routing services to be added without a change to the forwarding
  82.    paradigm).
  83.  
  84.    The initial MPLS effort will be focused on IPv4 and IPv6. However,
  85.    the core technology will be extendible to multiple network layer
  86.    protocols (e.g., IPX, Appletalk, DECnet, CLNP). MPLS is not confined
  87.    to any specific link layer technology, it can work with any media
  88.    over which Network Layer packets can be passed between network layer
  89.    entities.
  90.  
  91.    MPLS makes use of a routing approach whereby the normal mode of
  92.    operation is that L3 routing (e.g., existing IP routing protocols
  93.    and/or new IP routing protocols) is used by all nodes to determine
  94.    the routed path.
  95.  
  96.    MPLS provides a simple "core" set of mechanisms which can be applied
  97.    in several ways to provide a rich functionality. The core effort
  98.    includes:
  99.  
  100.    a) Semantics assigned to a stream label:
  101.  
  102.       - Labels are associated with specific streams of data;
  103.  
  104.    b) Forwarding Methods:
  105.  
  106.       - Forwarding is simplified by the use of short fixed length
  107.         labels to identify streams
  108.  
  109.  
  110.  
  111.  
  112. Callon et al.          Expires November 12, 1997                [Page 2]
  113.  
  114. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  115.  
  116.  
  117.       - Forwarding may require simple functions such as looking up a
  118.         label in a table, swapping labels, and possibly decrementing
  119.         and checking a TTL.
  120.  
  121.       - In some cases MPLS may make direct use of underlying layer 2
  122.         forwarding, such as is provided by ATM or Frame Relay
  123.         equipment.
  124.  
  125.    c) Label Distribution Methods:
  126.  
  127.       - Allow nodes to determine which labels to use for specific
  128.         streams
  129.  
  130.       - This may use some sort of control exchange, and/or be
  131.         piggybacked on a routing protocol
  132.  
  133.    The MPLS working group will define the procedures and protocols used
  134.    to assign significance to the forwarding labels and to distribute
  135.    that information between cooperating MPLS forwarders.
  136.  
  137. 1.2 Requirements
  138.  
  139.    - MPLS forwarding MUST simplify packet forwarding in order to do the
  140.      following:
  141.  
  142.      - lower cost of high speed forwarding
  143.  
  144.      - improve forwarding performance
  145.  
  146.    - MPLS core technologies MUST be general with respect to data link
  147.      technologies (i.e., work over a very wide range of underlying data
  148.      links). Specific optimizations for particular media MAY be
  149.      considered.
  150.  
  151.    - MPLS core technologies MUST be compatible with a wide range of
  152.      routing protocols, and MUST be capable of operating independently
  153.      of the underlying routing protocols. It has been observed that
  154.      considerable optimizations can be achieved in some cases by small
  155.      enhancements of existing protocols. Such enhancements MAY be
  156.      considered in the case of IETF standard routing protocols, and if
  157.      appropriate, coordinated with the relevant working group(s).
  158.  
  159.    - Routing protocols which are used in conjunction with MPLS might
  160.      be based on distributed computation. As such, during routing
  161.      transients, these protocols may compute forwarding paths which
  162.      potentially contain loops. MPLS MUST provide protocol mechanisms to
  163.      either prevent the formation of loops and /or contain the amount of
  164.      (networking) resources that can be consumed due to the presence of
  165.  
  166.  
  167.  
  168. Callon et al.          Expires November 12, 1997                [Page 3]
  169.  
  170. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  171.  
  172.  
  173.      loops.
  174.  
  175.    - MPLS forwarding MUST allow "aggregate forwarding" of user data;
  176.      i.e., allow streams to be forwarded as a unit and ensure that an
  177.      identified stream takes a single path, where a stream may consist
  178.      of the aggregate of multiple flows of user data. MPLS SHOULD
  179.      provide multiple levels of aggregation support (e.g., from
  180.      individual end to end application flows at one extreme, to
  181.      aggregates of all flows passing through a specified switch or
  182.      router at the other extreme).
  183.  
  184.    - MPLS MUST support operations, administration,  and maintenance
  185.      facilities at least as extensive as those supported in current IP
  186.      networks. Current network management and diagnostic tools SHOULD
  187.      continue to work in order to provide some backward compatibility.
  188.      Where such tools are broken by MPLS, hooks MUST be supplied to
  189.      allow equivalent functionality to be created.
  190.  
  191.    - MPLS core technologies MUST work with both unicast and multicast
  192.      streams.
  193.  
  194.    - The MPLS core specifications MUST clearly state how MPLS operates
  195.      in a hierarchical network.
  196.  
  197.    - Scalability issues MUST be considered and analyzed during the
  198.      definition of MPLS. Very scaleable solutions MUST be sought.
  199.  
  200.    - MPLS core technologies MUST be capable of working with O(n) streams
  201.      to switch all best-effort traffic, where n is the number of nodes
  202.      in a MPLS domain. MPLS protocol standards MUST be capable of taking
  203.      advantage of hardware that supports stream merging where
  204.      appropriate. Note that O(n-squared) streams or VCs might also be
  205.      appropriate for use in some cases.
  206.  
  207.    - The core set of MPLS standards, along with existing Internet
  208.      standards, MUST be a self-contained solution. For example, the
  209.      proposed solution MUST NOT require specific hardware features that
  210.      do not commonly exist on network equipment at the time that the
  211.      standard is complete. However, the solution MAY make use of
  212.      additional optional hardware features (e.g., to optimize
  213.      performance).
  214.  
  215.    - The MPLS protocol standards MUST support multipath routing and
  216.      forwarding.
  217.  
  218.    - MPLS MUST be compatible with the IETF Integrated Services Model,
  219.      including RSVP.
  220.  
  221.  
  222.  
  223.  
  224. Callon et al.          Expires November 12, 1997                [Page 4]
  225.  
  226. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  227.  
  228.  
  229.    - It MUST be possible for MPLS switches to coexist with non MPLS
  230.      switches in the same switched network. MPLS switches SHOULD NOT
  231.      impose additional configuration on non-MPLS switches.
  232.  
  233.    - MPLS MUST allow "ships in the night" operation with existing layer
  234.      2 switching protocols (e.g., ATM Forum Signaling) (i.e., MPLS must
  235.      be capable of being used in the same network which is also
  236.      simultaneously operating standard layer 2 protocols).
  237.  
  238.    - The MPLS protocol MUST support both topology-driven and
  239.      traffic/request-driven label assignments.
  240.  
  241. 1.3 Terminology
  242.  
  243.    aggregate stream
  244.  
  245.      synonym of "stream"
  246.  
  247.    DLCI
  248.  
  249.      a label used in Frame Relay networks to identify frame
  250.      relay circuits
  251.  
  252.    flow
  253.  
  254.      a single instance of an application to application flow
  255.      of data (as in the RSVP and IFMP use of the term "flow")
  256.  
  257.    frame merge
  258.  
  259.      stream merge, when it is applied to operation over
  260.      frame based media, so that the potential problem of cell
  261.      interleave is not an issue.
  262.  
  263.    label
  264.  
  265.      a short fixed length physically contiguous locally
  266.      significant identifier which is used to identify a stream
  267.  
  268.    label information base
  269.  
  270.      the database of information containing label bindings
  271.  
  272.    label swap
  273.  
  274.      the basic forwarding operation consisting of
  275.      looking up an incoming label to determine the outgoing label,
  276.      encapsulation, port, and other data handling information.
  277.  
  278.  
  279.  
  280. Callon et al.          Expires November 12, 1997                [Page 5]
  281.  
  282. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  283.  
  284.  
  285.    label swapping
  286.  
  287.      a forwarding paradigm allowing streamlined forwarding of data
  288.      by using labels to identify streams of data to be forwarded.
  289.  
  290.    label switched hop
  291.  
  292.      the hop between two MPLS nodes, on which forwarding
  293.      is done using labels.
  294.  
  295.    label switched path
  296.  
  297.      the path created by the concatenation of one or more label
  298.      switched hops, allowing a packet to be forwarded by swapping
  299.      labels from an MPLS node to another MPLS node.
  300.  
  301.    layer 2
  302.  
  303.      the protocol layer under layer 3 (which therefore offers the
  304.      services used by layer 3). Forwarding, when done by the swapping
  305.      of short fixed length labels, occurs at layer 2 regardless of
  306.      whether the label being examined is an ATM VPI/VCI, a frame
  307.      relay DLCI, or an MPLS label.
  308.  
  309.    layer 3
  310.  
  311.      the protocol layer at which IP and its associated routing
  312.      protocols operate
  313.  
  314.    link layer
  315.  
  316.      synonymous with layer 2
  317.  
  318.    loop detection
  319.  
  320.      a method of dealing with loops in which loops are allowed
  321.      to be set up, and data may be transmitted over the loop,
  322.      but the loop is later detected and closed
  323.  
  324.    loop prevention
  325.  
  326.      a method of dealing with loops in which data is never
  327.      transmitted over a loop
  328.  
  329.    label stack
  330.  
  331.      an ordered set of labels
  332.  
  333.  
  334.  
  335.  
  336. Callon et al.          Expires November 12, 1997                [Page 6]
  337.  
  338. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  339.  
  340.  
  341.    loop survival
  342.  
  343.      a method of dealing with loops in which data may be
  344.      transmitted over a loop, but means are employed to limit the
  345.      amount of network resources which may be consumed by the
  346.      looping data
  347.  
  348.    label switching router
  349.  
  350.      an MPLS node which is capable of forwarding native L3 packets
  351.  
  352.    merge point
  353.  
  354.      the node at which multiple streams and switched paths are
  355.      combined into a single stream sent over a single path. In the
  356.      case that the multiple paths are not combined prior to the
  357.      egress node, then the egress node becomes the merge point.
  358.  
  359.    Mlabel
  360.  
  361.      abbreviation for MPLS label
  362.  
  363.    MPLS core standards
  364.  
  365.      the standards which describe the core MPLS technology
  366.  
  367.    MPLS domain
  368.  
  369.      a contiguous set of nodes which operate MPLS routing and
  370.      forwarding and which are also in one Routing or Administrative
  371.      Domain
  372.  
  373.    MPLS edge node
  374.  
  375.      an MPLS node that connects an MPLS domain with a node which
  376.      is outside of the domain, either because it does not run
  377.      MPLS, and/or because it is in a different domain. Note that
  378.      if an LSR has a neighboring host which is not running MPLS,
  379.      that that LSR is an MPLS edge node.
  380.  
  381.    MPLS egress node
  382.  
  383.      an MPLS edge node in its role in handling traffic as it leaves
  384.      an MPLS domain
  385.  
  386.    MPLS ingress node
  387.  
  388.      an MPLS edge node in its role in handling traffic as it enters
  389.  
  390.  
  391.  
  392. Callon et al.          Expires November 12, 1997                [Page 7]
  393.  
  394. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  395.  
  396.  
  397.      an MPLS domain
  398.  
  399.    MPLS label
  400.  
  401.      a label placed in a short MPLS shim header used to identify
  402.      streams
  403.  
  404.    MPLS node
  405.  
  406.      a node which is running MPLS. An MPLS node will be aware
  407.      of MPLS control protocols, will operate one or more L3 routing
  408.      protocols, and will be capable of forwarding packets based on
  409.      labels. An MPLS node may optionally be also capable of
  410.      forwarding native L3 packets.
  411.  
  412.    MultiProtocol Label Switching
  413.  
  414.      an IETF working group and the effort associated with the working
  415.      group
  416.  
  417.    network layer
  418.  
  419.      synonymous with layer 3
  420.  
  421.    shortcut VC
  422.  
  423.      a VC set up as a result of an NHRP query and response
  424.  
  425.    stack
  426.  
  427.      synonymous with label stack
  428.  
  429.    stream
  430.  
  431.      an aggregate of one or more flows, treated as one aggregate
  432.      for the purpose of forwarding in L2 and/or L3 nodes (e.g.,
  433.      may be described using a single label). In many cases a stream
  434.      may be the aggregate of a very large number of flows.
  435.      Synonymous with "aggregate stream".
  436.  
  437.    stream merge
  438.  
  439.      the merging of several smaller streams into a larger stream,
  440.      such that for some or all of the path the larger stream can
  441.      be referred to using a single label.
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448. Callon et al.          Expires November 12, 1997                [Page 8]
  449.  
  450. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  451.  
  452.  
  453.    switched path
  454.  
  455.      synonymous with label switched path
  456.  
  457.    virtual circuit
  458.  
  459.      a circuit used by a connection-oriented layer 2 technology
  460.      such as ATM or Frame Relay, requiring the maintenance of
  461.      state information in layer 2 switches.
  462.  
  463.    VC merge
  464.  
  465.      stream merge when it is specifically applied to VCs,
  466.      specifically so as to allow multiple VCs to merge into one
  467.      single VC
  468.  
  469.    VP merge
  470.  
  471.      stream merge when it is applied to VPs, specifically so as
  472.      to allow multiple VPs to merge into one single VP. In this
  473.      case the VCIs need to be unique. This allows cells from
  474.      different sources to be distinguished via the VCI.
  475.  
  476.    VPI/VCI
  477.  
  478.      a label used in ATM networks to identify circuits
  479.  
  480. 1.4 Acronyms and Abbreviations
  481.  
  482.    DLCI     Data Link Circuit Identifier
  483.  
  484.    LIB      Label Information Base
  485.  
  486.    LDP      Label Distribution Protocol
  487.  
  488.    L2       Layer 2
  489.  
  490.    L3       Layer 3
  491.  
  492.    LSR      Label Switching Router
  493.  
  494.    MPLS     MultiProtocol Label Switching
  495.  
  496.    NHC      Next Hop (NHRP) Client
  497.  
  498.    NHS      Next Hop (NHRP) Server
  499.  
  500.    VC       Virtual Circuit
  501.  
  502.  
  503.  
  504. Callon et al.          Expires November 12, 1997                [Page 9]
  505.  
  506. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  507.  
  508.  
  509.    VPI      Virtual Path Identifier
  510.  
  511.    VCI      Virtual Circuit Identifier
  512.  
  513.  
  514. 2. Discussion of Core MPLS Components
  515.  
  516. 2.1 The Basic Routing Approach
  517.  
  518.    Routing is accomplished through the use of standard L3 routing
  519.    protocols, such as OSPF and BGP.  The information maintained by the
  520.    L3 routing protocols is then used to distribute labels to neighboring
  521.    nodes that are used in the forwarding of packets as described below.
  522.    In the case of ATM networks, the labels that are distributed are
  523.    VPI/VCIs and a separate protocol (i.e., PNNI) is not necessary for
  524.    the establishment of VCs for IP forwarding.
  525.  
  526.    The topological scope of a routing protocol (i.e. routing domain) and
  527.    the scope of label switching MPLS-capable nodes may be different.
  528.    For example, MPLS-knowledgeable and MPLS-ignorant nodes, all of which
  529.    are OSPF routers, may be co-resident in an area. In the case that
  530.    neighboring routers know MPLS, labels can be exchanged and used.
  531.  
  532.    Neighboring MPLS routers may use configured PVCs or PVPs to tunnel
  533.    through non-participating ATM or FR switches.
  534.  
  535. 2.2 Labels
  536.  
  537.    In addition to the single routing protocol approach discussed above,
  538.    the other key concept in the basic MPLS approach is the use of short
  539.    fixed length labels to simply user data forwarding.
  540.  
  541. 2.2.1 Label Semantics
  542.  
  543.    It is important that the MPLS solutions are clear about what
  544.    semantics (i.e., what knowledge of the state of the network) is
  545.    implicit in the use of labels for forwarding user data packets or
  546.    cells.
  547.  
  548.    At the simplest level, a label may be thought of as nothing more than
  549.    a shorthand for the packet header, in order to index the forwarding
  550.    decision that a router would make for the packet. In this context,
  551.    the label is nothing more than a shorthand for an aggregate stream of
  552.    user data.
  553.  
  554.    This observation leads to one possible very simple interpretation
  555.    that the "meaning" of the label is a strictly local issue between two
  556.    neighboring nodes. With this interpretation: (i) MPLS could be
  557.  
  558.  
  559.  
  560. Callon et al.          Expires November 12, 1997               [Page 10]
  561.  
  562. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  563.  
  564.  
  565.    employed between any two neighboring nodes for forwarding of data
  566.    between those nodes, even if no other nodes in the network
  567.    participate in MPLS; (ii) When MPLS is used between more than two
  568.    nodes, then the operation between any two neighboring nodes could be
  569.    interpreted as independent of the operation between any other pair of
  570.    nodes. This approach has the advantage of semantic simplicity, and of
  571.    being the closest to pure datagram forwarding. However this approach
  572.    (like pure datagram forwarding) has the disadvantage that when a
  573.    packet is forwarded it is not known whether the packet is being
  574.    forwarded into a loop, into a black hole, or towards links which have
  575.    inadequate resources to handle the traffic flow. These disadvantages
  576.    are necessary with pure datagram forwarding, but are optional design
  577.    choices to be made when label switching is being used.
  578.  
  579.    There are cases where it would be desirable to have additional
  580.    knowledge implicit in the existence of the label. For example, one
  581.    approach to avoiding loops (see section x.x below) involves signaling
  582.    the label distribution along a path before packets are forwarded on
  583.    that path. With this approach the fact that a node has a label to use
  584.    for a particular IP packet would imply the knowledge that following
  585.    the label (including label swapping at subsequent nodes) leads to a
  586.    non- looping path which makes progress towards the destination
  587.    (something which is usually, but not necessarily always true when
  588.    using pure datagram routing). This would of course require some sort
  589.    of label distribution/setup protocol which signals along the path
  590.    being setup before the labels are available for packet forwarding.
  591.    However, there are also other consequences to having additional
  592.    semantics associated with the label: specifically, procedures are
  593.    needed to ensure that the semantics are correct. For example, if the
  594.    fact that you have a label for a particular destination implies that
  595.    there is a loop-free path, then when the path changes some procedures
  596.    are required to ensure that it is still loop free. Another example of
  597.    semantics which could be implicit in a label is the identity of the
  598.    higher level protocol type which is encoded using that label value.
  599.  
  600.    In either case, the specific value of a label to use for a stream is
  601.    strictly a local issue; however the decision about whether to use the
  602.    label may be based on some global (or at least wider scope) knowledge
  603.    that, for example, the label-switched path is loop-free and/or has
  604.    the appropriate resources.
  605.  
  606.    A similar example occurs in ATM networks: With standard ATM a
  607.    signaling protocol is used which both reserves resources in switches
  608.    along the path, and which ensures that the path is loop-free and
  609.    terminates at the correct node. Thus implicit in the fact that an ATM
  610.    node has a VPI/VCI for forwarding a particular piece of data is the
  611.    knowledge that the path has been set up successfully.
  612.  
  613.  
  614.  
  615.  
  616. Callon et al.          Expires November 12, 1997               [Page 11]
  617.  
  618. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  619.  
  620.  
  621.    Another similar examples occurs with multipoint to point trees over
  622.    ATM (see section xx below), where the multipoint to point tree uses a
  623.    VP, and cell interleave at merge points in the tree is handled by
  624.    giving each source on the tree a distinct VCI within the VP. In this
  625.    case, the fact that each source has a known VPI/VCI to use needs to
  626.    (implicitly or explicitly) imply the knowledge that the VCI assigned
  627.    to that source is unique within the context of the VP.
  628.  
  629.    In general labels are used to optimize how the system works, not to
  630.    control how the system works. For example, the routing protocol
  631.    determines the path that a packet follows. The presence or absence of
  632.    a label assignment should not effect the path of a L3 packet. Note
  633.    however that the use of labels may make capabilities such as explicit
  634.    routes, loadsharing, and multipath more efficient.
  635.  
  636. 2.2.2 Label Granularity
  637.  
  638.    Labels are used to create a simple forwarding paradigm.  The
  639.    essential element in assigning a label is that the device which will
  640.    be using the label to forward packets will be forwarding all packets
  641.    with the same label in the same way.  If the packet is to be
  642.    forwarded solely by looking at the label, then at a minimum, all
  643.    packets with the same incoming label must be forwarded out the same
  644.    port(s) with the same encapsulation(s), and with the same next hop
  645.    label (if any).
  646.  
  647.    Note that the label could also mean "ignore this label and forward
  648.    based on what is contained within," where within one might find a
  649.    label (if a stack of labels is used) or a layer 3 packet.
  650.  
  651.    For IP unicast traffic, the granularity of a label allows various
  652.    levels of aggregation in a Label Information Base (LIB).  At one end
  653.    of the spectrum, a label could represent a host route (i.e. the full
  654.    32 bits of IP address).  If a router forwards an entire CIDR prefix
  655.    in the same way, it may choose to use one label to represent that
  656.    prefix. Similarly if the router is forwarding several (otherwise
  657.    unrelated) CIDR prefixes in the same way it may choose to use the
  658.    same label for this set of prefixes.  For instance all CIDR prefixes
  659.    which share the same BGP Next Hop could be assigned the same label.
  660.    Taking this to the limit, an egress router may choose to advertise
  661.    all of its prefixes with the same label.
  662.  
  663.    By introducing the concept of an egress identifier, the distribution
  664.    of labels associated with groups of CIDR prefixes can be simplified.
  665.    For instance, an egress identifier might specify the BGP Next Hop,
  666.    with all prefixes routed to that next hop receiving the label
  667.    associated with that egress identifier.  Another natural place to
  668.    aggregate would be the MPLS egress router.  This would work
  669.  
  670.  
  671.  
  672. Callon et al.          Expires November 12, 1997               [Page 12]
  673.  
  674. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  675.  
  676.  
  677.    particularly well in conjunction with a link-state routing protocol,
  678.    where the association between egress router and CIDR prefix is
  679.    already distributed throughout an area.
  680.  
  681.    For IP multicast, the natural binding of a label would be to a
  682.    multicast tree, or rather to the branch of a tree which extends from
  683.    a particular port.  Thus for a shared tree, the label corresponds to
  684.    the multicast group, (*,G).  For (S,G) state, the label would
  685.    correspond to the source address and the multicast group.
  686.  
  687.    A label can also have a granularity finer than a host route.  That
  688.    is, it could be associated with some combination of source and
  689.    destination address or other information within the packet.  This
  690.    might for example be done on an administrative basis to aid in
  691.    effecting policy.  A label could also correspond to all packets which
  692.    match a particular Integrated Services filter specification.
  693.  
  694.    Labels can also represent explicit routes.  This use is semantically
  695.    equivalent to using an IP tunnel with a complete source route. This
  696.    is discussed in more detail in section 4.12.
  697.  
  698. 2.2.3 Label Assignment
  699.  
  700.    Essential to label switching is the notion of binding between a label
  701.    and Network Layer routing (routes).  A control component is
  702.    responsible for creating label bindings, and then distributing the
  703.    label binding information among label switches. Label assignment
  704.    involves allocating a label, and then binding a label to a route.
  705.  
  706.    Label assignment can be driven by control traffic or by data traffic.
  707.    This is discussed in more detail in section 3.4.
  708.  
  709.    Control traffic driven label assignment has several advantages, as
  710.    compared to data traffic driven label Assignment. For one thing, it
  711.    minimizes the amount of additional control traffic needed to
  712.    distribute label binding information, as label binding information is
  713.    distributed only in response to control traffic, independent of data
  714.    traffic. It also makes the overall scheme independent of and
  715.    insensitive to the data traffic profile/pattern. Control traffic
  716.    driven creation of label binding improves forwarding latency, as
  717.    labels are assigned before data traffic arrives, rather than being
  718.    assigned as data traffic arrives. It also simplifies the overall
  719.    system behavior, as the control plane is controlled solely by control
  720.    traffic, rather than by a mix of control and data traffic.
  721.  
  722.    There are however situations where data traffic driven label
  723.    assignment is necessary.  A particular case may occur with ATM
  724.    without VP or VC merge. In this case in order to set up a full mesh
  725.  
  726.  
  727.  
  728. Callon et al.          Expires November 12, 1997               [Page 13]
  729.  
  730. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  731.  
  732.  
  733.    of VCs would require n-squared VCs. However, in very large networks
  734.    this may be infeasible. Instead VCs may be setup where required for
  735.    forwarding data traffic. In this case it is generally not possible to
  736.    know a priori how many such streams may occur.
  737.  
  738.    Label withdrawal is required with both control-driven and data-driven
  739.    label assignment. Label withdrawal is primarily a matter of garbage
  740.    collection, that is collecting up unused labels so that they may be
  741.    reassigned.  Generally speaking, a label should be withdrawn when the
  742.    conditions that allowed it to be assigned are no longer true. For
  743.    example, if a label is imbued with extra semantics such as loop-free-
  744.    ness, then the label must be withdrawn when those extra semantics
  745.    cease to hold.
  746.  
  747.    In certain cases, notably multicast, it may be necessary to share a
  748.    label space between multiple entities.  If these sharing arrangements
  749.    are altered by the coming and going of neighbors, then labels which
  750.    are no longer controlled by an entity must be withdrawn and a new
  751.    label assigned.
  752.  
  753. 2.2.4 Label Stack and Forwarding Operations
  754.  
  755.    The basic forwarding operation consists of looking up the incoming
  756.    label to determine the outgoing label, encapsulation, port, and any
  757.    additional information which may pertain to the stream such as a
  758.    particular queue or other QoS related treatment.  We refer to this
  759.    operation as a label swap.
  760.  
  761.    When a packet first enters an MPLS domain, the packet is forwarded by
  762.    normal layer 3 forwarding operations with the exception that the
  763.    outgoing encapsulation will now include a label.  We refer to this
  764.    operation as a label push.  When a packet leaves an MPLS domain, the
  765.    label is removed.  We refer to this as a label pop.
  766.  
  767.    In some situations, carrying a stack of labels is useful.  For
  768.    instance both IGP and BGP label could be used to allow routers in the
  769.    interior of an AS to be free of BGP information.  In this scenario,
  770.    the "IGP" label is used to steer the packet through the AS and the
  771.    "BGP" label is used to switch between ASes.
  772.  
  773.    With a label stack, the set of label operations remains the same,
  774.    except that at some points one might push or pop multiple labels, or
  775.    pop & swap, or swap & push.
  776.  
  777. 2.3 Encapsulation
  778.  
  779.    Label-based forwarding makes use of various pieces of information,
  780.    including a label or stack of labels, and possibly additional
  781.  
  782.  
  783.  
  784. Callon et al.          Expires November 12, 1997               [Page 14]
  785.  
  786. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  787.  
  788.  
  789.    information such as a TTL field. In some cases this information may
  790.    be encoded using an MPLS header, in other cases this information may
  791.    be encoded in L2 headers. Note that there may be multiple types of
  792.    MPLS headers. For example, the header used over one media type may be
  793.    different than is used over a different media type. Similarly, in
  794.    some cases the information that MPLS makes use of may be encoded in
  795.    an ATM header. We will use the term "MPLS encapsulation" to refer to
  796.    whatever form is used to encapsulate the label information and other
  797.    information used for label based forwarding. The term "MPLS header"
  798.    will be used where this information is carried in some sort of MPLS-
  799.    specific header (i.e., when the MPLS information cannot all be
  800.    carried in a L2 header). Whether there is one or multiple forms of
  801.    possible MPLS headers is also outside of the scope of this document.
  802.  
  803.    The exact contents of the MPLS encapsulation is outside of the scope
  804.    of this document. Some fields, such as the label, are obviously
  805.    needed. Some others might or might not be standardized, based on
  806.    further study. An encapsulation scheme might make use of the
  807.    following fields:
  808.  
  809.      -  label
  810.      -  TTL
  811.      -  class of service
  812.      -  stack indicator
  813.      -  next header type indicator
  814.      -  checksum
  815.  
  816.    It is desirable to have a very short encapsulation header.  For
  817.    example, a four byte encapsulation header adds to the convenience of
  818.    building a hardware implementation that forwards based on the
  819.    encapsulation header. But at the same time it is tricky assigning
  820.    such a limited number of bits to carry the above listed information
  821.    in an MPLS header. Hence careful consideration must be given to the
  822.    information chosen for an MPLS header.
  823.  
  824.    A TTL value in the MPLS header may be useful in the same manner as it
  825.    is in IP. Specifically, TTL may be used to terminate packets caught
  826.    in a routing loop, and for other related uses such as traceroute. The
  827.    TTL mechanism is a simple and proven method of handling such events.
  828.    Another use of TTL is to expire packets in a network by limiting
  829.    their "time to live" and eliminating stale packets that may cause
  830.    problems for some of the higher layer protocols. When used over link
  831.    layers which do not provide a TTL field, alternate mechanisms will be
  832.    needed to replace the uses of the TTL field.
  833.  
  834.    A provision for a class of service (COS) field in the MPLS header
  835.    allows multiple service classes within the same label.  However, when
  836.    more sophisticated QoS is associated with a label, the COS may not
  837.  
  838.  
  839.  
  840. Callon et al.          Expires November 12, 1997               [Page 15]
  841.  
  842. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  843.  
  844.  
  845.    have any significance.  Alternatively, the COS (like QoS) can be left
  846.    out of the header, and instead propagated with the label assignment,
  847.    but this entails that a separate label be assigned to each required
  848.    class of service.  Nevertheless, the COS mechanism provides a simple
  849.    method of segregating flows within a label.
  850.  
  851.    As previously mentioned, the encapsulation header can be used to
  852.    derive benefits of tunneling (or stacking).
  853.  
  854.    The MPLS header must provide a way to indicate that multiple MPLS
  855.    headers are stacked (ie, the "stack indicator").  For this purpose a
  856.    single bit in the MPLS header will suffice. In addition, there are
  857.    also some benefits to indicating the type of the protocol header
  858.    following the MPLS header (ie, the "next header type indicator"). One
  859.    option would be to combine the stack indicator and next header type
  860.    indicator into a single value (ie, the next header type indicator
  861.    could be allowed to take the value "MPLS header"). Another option is
  862.    to have the next header type indicator be implicit in the label value
  863.    (such that this information would be propagated along with the
  864.    label).
  865.  
  866.    There is no compelling reason to support a checksum field in the MPLS
  867.    header. A CRC mechanism at the L2 layer should be sufficient to
  868.    ensure the integrity of the MPLS header.
  869.  
  870.  
  871. 3. Observations, Issues and Assumptions
  872.  
  873. 3.1 Layer 2 versus Layer 3 Forwarding
  874.  
  875.    MPLS uses L2 forwarding as a way to provide simple and fast packet
  876.    forwarding capability.  One primary reason for the simplicity of L2
  877.    layer forwarding comes from its short, fixed length labels.  A node
  878.    forwarding at L3 must parse a (relatively) large header, and perform
  879.    a longest-prefix match to determine a forwarding path.  However, when
  880.    a node performs L2 label swapping, and labels are assigned properly,
  881.    it can do a direct index lookup into its forwarding (or in this case,
  882.    label-swapping) table with the short header. It is arguably simpler
  883.    to build label swapping hardware than it is to build L3 forwarding
  884.    hardware because the label swapping function is less complex.
  885.  
  886.    The relative performance of L2 and L3 forwarding may differ
  887.    considerably between nodes. Some nodes may illustrate an order of
  888.    magnitude difference. Other nodes (for example, nodes with more
  889.    extensive L3 forwarding hardware) may have identical performance at
  890.    L2 and L3. However, some nodes may not be capable of doing a L3
  891.    forwarding at all (e.g. ATM), or have such limited capacity as to be
  892.    unusable at L3.  In this situation, traffic must be blackholed if no
  893.  
  894.  
  895.  
  896. Callon et al.          Expires November 12, 1997               [Page 16]
  897.  
  898. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  899.  
  900.  
  901.    switched path exists.
  902.  
  903.    On nodes in which L3 forwarding is slower than L2 forwarding, pushing
  904.    traffic to L3 when no L2 path is available may cause congestion. In
  905.    some cases this could cause data loss (since L3 may be unable to keep
  906.    up with the increased traffic). However, if data is discarded, then
  907.    in general this will cause TCP to backoff, which would allow control
  908.    traffic, traceroute and other network management tools to continue to
  909.    work.
  910.  
  911.    The MPLS protocol MUST not make assumptions about the forwarding
  912.    capabilities of an MPLS node.  Thus, MPLS must propose solutions that
  913.    can leverage the benefits of a node that is capable of L3 forwarding,
  914.    but must not mandate the node be capable of such.
  915.  
  916.    Why We Will Still Need L3 Forwarding
  917.  
  918.    MPLS will not, and is not intended to, replace L3 forwarding. There
  919.    is absolutely a need for some systems to continue to forward IP
  920.    packets using normal Layer 3 IP forwarding. L3 forwarding will be
  921.    needed for a variety of reasons, including:
  922.  
  923.      -  For scaling; to forward on a finer granularity than the labels
  924.         can provide
  925.      -  For security; to allow packet filtering at firewalls.
  926.      -  For forwarding at the initial router (when hosts don't do MPLS)
  927.  
  928.    Consider a campus network which is serving a small company. Suppose
  929.    that this companies makes use of the Internet, for example as a
  930.    method of communicating with customers. A customer on the other side
  931.    of the world has an IP packet to be forwarded to a particular system
  932.    within the company. It is not reasonable to expect that the customer
  933.    will have a label to use to forward the packet to that specific
  934.    system. Rather, the label used for the "first hop" forwarding might
  935.    be sufficient to get the packet considerably closer to the
  936.    destination. However, the granularity of the labels cannot be to
  937.    every host worldwide. Similarly, routing used within one routing
  938.    domain cannot know about every host worldwide. This implies that in
  939.    may cases the labels assigned to a particular packet will be
  940.    sufficient to get the packet close to the destination, but that at
  941.    some points along the path of the packet the IP header will need to
  942.    be examined to determine a finer granularity for forwarding that
  943.    packet. This is particularly likely to occur at domain boundaries.
  944.  
  945.    A similar point occurs at the last router prior to the destination
  946.    host. In general, the number of hosts attached to a network is likely
  947.    to be great enough that it is not feasible to assign a separate label
  948.    to every host. Rather, as least for routing within the destination
  949.  
  950.  
  951.  
  952. Callon et al.          Expires November 12, 1997               [Page 17]
  953.  
  954. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  955.  
  956.  
  957.    routing domain (or the destination area if there is a hierarchical
  958.    routing protocol in use) a label may be assigned which is sufficient
  959.    to get the packet to the last hop router. However, the last hop
  960.    router will need to examine the IP header (and particularly the
  961.    destination IP address) in order to forward the packet to the correct
  962.    destination host.
  963.  
  964.    Packet filtering at firewalls is an important part of the operation
  965.    of the Internet. While the current state of Internet security may be
  966.    considerably less advanced than may be desired, nonetheless some
  967.    security (as is provided by firewalls) is much better than no
  968.    security. We expect that packet filtering will continue to be
  969.    important for the foreseeable future. Packet filtering requires
  970.    examination of the contents of the packet, including the IP header.
  971.    This implies that at firewalls the packet cannot be forwarded simply
  972.    by considering the label associated with the packet. Note that this
  973.    is also likely to occur at domain boundaries.
  974.  
  975.    Finally, it is very likely that many hosts will not implement MPLS.
  976.    Rather, the host will simply forward an IP packet to its first hop
  977.    router. This first hop router will need to examine the IP header
  978.    prior to forwarding the packet (with or without a label).
  979.  
  980. 3.2 Scaling Issues
  981.  
  982.    MPLS scalability is provided by two of the principles of routing.
  983.    The first is that forwarding follows an inverted tree rooted at a
  984.    destination.  The second is that the number of destinations is
  985.    reduced by routing aggregation.
  986.  
  987.    The very nature of IP forwarding is a merged multipoint-to-point
  988.    tree. Thus, since MPLS mirrors the IP network layer, an MPLS node
  989.    that is capable of merging is capable of creating O(n) switched paths
  990.    which provide network reachability to all "n" destinations.  The
  991.    meaning of "n" depends on the granularity of the switched paths.  One
  992.    obvious choice of "n" is the number of CIDR prefixes existing in the
  993.    forwarding table (this scales the same as today's routing). However,
  994.    the value of "n" may be reduced considerably by choosing switched
  995.    paths of further aggregation. For example, by creating switched paths
  996.    to each possible egress node, "n" may represent the number of egress
  997.    nodes in a network. This choice creates "n" switched paths, such that
  998.    each path is shared by all CIDR prefixes that are routed through the
  999.    same egress node. This selection greatly improves scalability, since
  1000.    it minimizes "n", but at the same time maintains the same switching
  1001.    performance of CIDR aggregation. (See section 2.2.2 for a description
  1002.    of all of the levels of granularity provided by MPLS).
  1003.  
  1004.    The MPLS technology must scale at least as well as existing
  1005.  
  1006.  
  1007.  
  1008. Callon et al.          Expires November 12, 1997               [Page 18]
  1009.  
  1010. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1011.  
  1012.  
  1013.    technology. For example, if the MPLS technology were to support ONLY
  1014.    host-to-host switched path connectivity, then the number of
  1015.    switched-paths would be much higher than the number of routing table
  1016.    entries.
  1017.  
  1018.    There are several ways in which merging can be done in order to allow
  1019.    O(n) switches paths to connect n nodes. The merging approach used has
  1020.    an impact on the amount of state information, buffering, delay
  1021.    characteristics, and the means of control required to coordinate the
  1022.    trees. These issues are discussed in more detail in section 4.2.
  1023.  
  1024.    There are some cases in which O(n-squared) switched paths may be used
  1025.    (for example, by setting up a full mesh of point to point streams).
  1026.    As label space and the amount of state information that can be
  1027.    supported may be limited, it will not be possible to support O(n-
  1028.    squared) switched paths in very large networks. However, in some
  1029.    cases the use of n-squared paths may even be a advantage (for
  1030.    example, to allow load- splitting of individual streams).
  1031.  
  1032.    MPLS must be designed to scale for O(n). O(n) scaling allows MPLS
  1033.    domains to scale to a very large scale. In addition, if best effort
  1034.    service can be supported with O(n) scaling, this conserves resources
  1035.    (such as label space and state information) which can be used for
  1036.    supporting advanced services such as QoS. However, since some
  1037.    switches may not support merging, and some small networks may not
  1038.    require the scaling benefits of O(n), provisions must also be
  1039.    provided for a non- merging, O(n-squared) solution.
  1040.  
  1041.    Note: A precise and complete description of scaling would consider
  1042.    that there are multiple dimensions of scaling, and multiple resources
  1043.    whose usage may be considered. Possible dimensions of scaling
  1044.    include: (i) the total number of streams which exist in an MPLS
  1045.    domain (with associated labels assigned to them); (ii) the total
  1046.    number of "label swapping pairs" which may be stored in the nodes of
  1047.    the network (ie, entries of the form "for incoming label 'x', use
  1048.    outgoing label 'y'"); (iii) the number of labels which need to be
  1049.    assigned for use over a particular link; (iv) The amount of state
  1050.    information which needs to be maintained by any one node. We do not
  1051.    intend to perform a complete analysis of all possible scaling issues,
  1052.    and understand that our use of the terms "O(n)" and "O(n-squared)" is
  1053.    approximate only.
  1054.  
  1055. 3.3 Types of Streams
  1056.  
  1057.    Switched paths in the MPLS network can be of different types:
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064. Callon et al.          Expires November 12, 1997               [Page 19]
  1065.  
  1066. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1067.  
  1068.  
  1069.      -  point-to-point
  1070.      -  multipoint-to-point
  1071.      -  point-to-multipoint
  1072.      -  multipoint-to-multipoint
  1073.  
  1074.    Two of the factors that determine which type of switched path is used
  1075.    are (i) The capability of the switches employed in a network; (ii)
  1076.    The purpose of the creation of a switched path; that is, the types of
  1077.    flows to be carried in the switched path.  These two factor also
  1078.    determine the scalability of a network in terms of the number of
  1079.    switched paths in use for transporting data through a network.
  1080.  
  1081.    The point-to-point switched path can be used to connect all ingress
  1082.    nodes to all the egress nodes to carry unicast traffic.  In this
  1083.    case, since an ingress node has point-to-point connections to all the
  1084.    egress nodes, the number of connections in use for transporting
  1085.    traffic is of O(n-squared), where n is the number of edges MPLS
  1086.    devices.  For small networks the full mesh connection approach may
  1087.    suffice and not pose any scalability problems.  However, in large
  1088.    enterprise backbone or ISP networks, this will not scale well.
  1089.  
  1090.    Point-to-point switched paths may be used on a host-to-host or
  1091.    application to application basis (e.g., a switched path per RSVP
  1092.    flow). The dedicated point-to-point switched path transports the
  1093.    unicast data from the ingress to the egress node of the MPLS network.
  1094.    This approach may be used for providing QoS services or for best-
  1095.    effort traffic.
  1096.  
  1097.    A multipoint-to-point switched path connects all ingress nodes to an
  1098.    single egress node. At a given intermediate node in the multipoint-
  1099.    to- point switched path, L2 data units from several upstream links
  1100.    are "merged" into a single label on a downstream link.  Since each
  1101.    egress node is reachable via a single multipoint-to-point switched
  1102.    path, the number of switched paths required to transport best-effort
  1103.    traffic through a MPLS network is O(n), where n is the number of
  1104.    egress nodes.
  1105.  
  1106.    The point-to-multipoint switched path is used for distributing
  1107.    multicast traffic. This switched path tree mirrors the multicast
  1108.    distribution tree as determined by the multicast routing protocols.
  1109.    Typically a switch capable of point-to-multipoint connection
  1110.    replicates an L2 data unit from the incoming (parent) interface to
  1111.    all the outgoing (child) interfaces. Standard ATM switches support
  1112.    such functionality in the form of point-to-multipoint VCs or VPs.
  1113.  
  1114.    A multipoint-to-multipoint switched path may be used to combine
  1115.    multicast traffic from multiple sources into a single multicast
  1116.    distribution tree.  The advantage of this is that the multipoint-to-
  1117.  
  1118.  
  1119.  
  1120. Callon et al.          Expires November 12, 1997               [Page 20]
  1121.  
  1122. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1123.  
  1124.  
  1125.    multipoint switched path is shared by multiple sources. Conceptually,
  1126.    a form of multipoint-to-multipoint can be thought of as follows:
  1127.    Suppose that you have a point to multipoint VC from each node to all
  1128.    other nodes. Suppose that any point where two or more VCs happen to
  1129.    merge, you merge them into a single VC or VP. This would require
  1130.    either coordination of VCI spaces (so that each source has a unique
  1131.    VCI within a VP) or VC merge capabilities. The applicability of
  1132.    similar concepts to MPLS is FFS.
  1133.  
  1134. 3.4 Data Driven versus Control Traffic Driven Label Assignment
  1135.  
  1136.    A fundamental concept in MPLS is the association of labels and
  1137.    network layer routing. Each LSR must assign labels, and distribute
  1138.    them to its forwarding peers, for traffic which it intends to forward
  1139.    by label swapping.  In the various contributions that have been made
  1140.    so far to the MPLS WG we identify three broad strategies for label
  1141.    assignment; (i) those driven by topology based control traffic
  1142.    [TAG][ARIS][IP navigator]; (ii) Those driven by request based control
  1143.    traffic [RSVP]; and (iii) those driven by data traffic
  1144.    [CSR][Ipsilon].
  1145.  
  1146.    We also note that in actual practice combinations of these methods
  1147.    may be employed. One example is that topology based methods for best
  1148.    effort traffic plus request based methods for support of RSVP.
  1149.  
  1150. 3.4.1 Topology Driven Label Assignment
  1151.  
  1152.    In this scheme labels are assigned in response to normal processing
  1153.    of routing protocol control traffic. Examples of such control
  1154.    protocols are OSPF and  BGP. As an LSR processes OSPF or BGP updates
  1155.    it can, as it makes or changes entries in its forwarding tables,
  1156.    assign labels to those entries.
  1157.  
  1158.    Among the properties of this scheme are:
  1159.  
  1160.    - The computational load of assignment and distribution and the
  1161.      bandwidth consumed by label distribution are bounded by the size of
  1162.      the network.
  1163.  
  1164.    - Labels are in the general case preassigned. If a route exists then
  1165.      a label has been assigned to it (and distributed). Traffic may be
  1166.      label swapped immediately it arrives, there is no label setup
  1167.      latency at forwarding time.
  1168.  
  1169.    - Requires LSRs to be able to process control traffic load only.
  1170.  
  1171.    - Labels assigned in response to the operation of routing protocols
  1172.      can have a granularity equivalent to that of the routes advertised
  1173.  
  1174.  
  1175.  
  1176. Callon et al.          Expires November 12, 1997               [Page 21]
  1177.  
  1178. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1179.  
  1180.  
  1181.      by the protocol. Labels can, by this means, cover (highly)
  1182.      aggregated routes.
  1183.  
  1184. 3.4.2 Request Driven Label Assignment
  1185.  
  1186.    In this scheme labels are assigned in response to normal processing
  1187.    of request based control traffic. Examples of such control protocols
  1188.    are RSVP. As an LSR processes RSVP messages it can, as it makes or
  1189.    changes entries in its forwarding tables, assign labels to those
  1190.    entries.
  1191.  
  1192.    Among the properties of this scheme are:
  1193.  
  1194.    - The computational load of assignment and distribution and the
  1195.      bandwidth consumed by label distribution are bounded by the amount
  1196.      of control traffic in the system.
  1197.  
  1198.    - Labels are in the general case preassigned. If a route exists then
  1199.      a label has been assigned to it (and distributed). Traffic may be
  1200.      label swapped immediately it arrives, there is no label setup
  1201.      latency at forwarding time.
  1202.  
  1203.    - Requires LSRs to be able to process control traffic load only.
  1204.  
  1205.    - Depending upon the number of flows supported, this approach may
  1206.      require a larger number of labels to be assigned compared with
  1207.      topology driven assignment.
  1208.  
  1209.    - This approch requires applications to make use of request paradigm
  1210.      in order to get a label assigned to their flow.
  1211.  
  1212. 3.4.3 Traffic Driven Label Assignment
  1213.  
  1214.    In this scheme the arrival of data at an LSR "triggers" label
  1215.    assignment and distribution. Traffic driven approach has the
  1216.    following characteristics.
  1217.  
  1218.    - Label assignment and distribution costs are a function of
  1219.      traffic patterns. In an LSR with limited label space that is
  1220.      using a traffic driven approach to amortize its labels over a
  1221.      larger number of flows the overhead due to label assignment
  1222.      and distribution grows as a function of the number of flows
  1223.      and as a function of their "persistence". Short lived but
  1224.      recurring flows may impose a heavy control burden.
  1225.  
  1226.    - There is a latency associated with the appearance of a "flow"
  1227.      and the assignment of a label to it. The documented approaches
  1228.      to this problem suggest L3 forwarding during this setup phase,
  1229.  
  1230.  
  1231.  
  1232. Callon et al.          Expires November 12, 1997               [Page 22]
  1233.  
  1234. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1235.  
  1236.  
  1237.      this has the potential for packet reordering (note that packet
  1238.      reordering may occur with any scheme when the network topology
  1239.      changes, but traffic driven label assignment introduces another
  1240.      cause for reordering).
  1241.  
  1242.    - Flow driven label assignment requires high performance packet
  1243.      classification capabilities.
  1244.  
  1245.    - Traffic driven label assignment may be useful to reduce label
  1246.      consumption (assuming that flows are not close to full mesh).
  1247.  
  1248.    - If you want flows to hosts, due to limits on label space, then
  1249.      traffic based label consumption is probably necessary due to
  1250.      the large number of hosts which may occur in a network.
  1251.  
  1252.    - If you want to assign specific network resources to specific
  1253.      labels, to be used for support of application flows, then
  1254.      again the fine grain associated with labels may require data
  1255.      based label assignment.
  1256.  
  1257. 3.5 The Need for Dealing with  Looping
  1258.  
  1259.    Routing protocols which are used in conjunction with MPLS will in
  1260.    many cases be based on distributed computation. As such, during
  1261.    routing transients, these protocols may compute forwarding paths
  1262.    which contain loops. For this reason MPLS will be designed with
  1263.    mechanisms to either prevent the formation of loops and /or contain
  1264.    the amount of resources that can be consumed due to the presence of
  1265.    loops.
  1266.  
  1267.    Note that there are a number of different alternative mechanisms
  1268.    which have been proposed (see section 4.3). Some of these prevent the
  1269.    formation of layer 2 forwarding loops, others allow loops to form but
  1270.    minimize their impact in one way or another (e.g., by discarding
  1271.    packets which loop, or by detecting and closing the loop after a
  1272.    period of time). Generally speaking, there are tradeoffs to be made
  1273.    between the amount of looping which might occur, and other
  1274.    considerations such as the time to convergence after a change in the
  1275.    paths computed by the routing algorithm.
  1276.  
  1277.    We are not proposing any changes to normal layer 3 operation, and
  1278.    specifically are not trying to eliminate the possibility of looping
  1279.    at layer 3. Transient loops will continue to be possible in IP
  1280.    networks. Note that IP has a means to limit the damage done by
  1281.    looping packets, based on decrementing the IP TTL field as the packet
  1282.    is forwarded, and discarding packets whose TTL has expired. Dynamic
  1283.    routing protocols used with IP are also designed to minimize the
  1284.    amount of time during which loops exist.
  1285.  
  1286.  
  1287.  
  1288. Callon et al.          Expires November 12, 1997               [Page 23]
  1289.  
  1290. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1291.  
  1292.  
  1293.    The question that MPLS has to deal with is what to do at L2. In some
  1294.    cases L2 may make use of the same method that is used as L3. However,
  1295.    other options are available at L2, and in some cases (specifically
  1296.    when operating over ATM or Frame Relay hardware) the method of
  1297.    decrementing a TTL field (or any similar field) is not available.
  1298.  
  1299.    There are basically two problems caused by packet looping: The most
  1300.    obvious problem is that packets are not delivered to the correct
  1301.    destination. The other result of looping is congestion. Even with TTL
  1302.    decrementing and packet discard, there may still be a significant
  1303.    amount of time that packets travel through a loop. This can adversely
  1304.    affect other packets which are not looping: Congestion due to the
  1305.    looping packets can cause non-looping packets to be delayed and/or
  1306.    discarded.
  1307.  
  1308.    Looping is particularly serious in (at least) three cases: One is
  1309.    when forwarding over ATM. Since ATM does not have a TTL field to
  1310.    decrement, there is no way to discard ATM cells which are looping
  1311.    over ATM subnetworks.  Standard ATM PNNI routing and signaling solves
  1312.    this problem by making use of call setup procedures which ensure that
  1313.    ATM VCs will never be setup in a loop [PNNI]. However, when MPLS is
  1314.    used over ATM subnets, the native ATM routing and signaling
  1315.    procedures may not be used for the full L2 path. This leads to the
  1316.    possibility that MPLS over ATM might in principle allow packets to
  1317.    loop indefinitely, or until L3 routing stabilizes. Methods are needed
  1318.    to prevent this problem.
  1319.  
  1320.    Another case in which looping can be particularly unpleasant is for
  1321.    multicast traffic. With multicast, it is possible that the packet may
  1322.    be delivered successfully to some destinations even though copies
  1323.    intended for other destinations are looping. This leads to the
  1324.    possibility that huge numbers of identical packets could be delivered
  1325.    to some destinations. Also, since multicast implies that packets are
  1326.    duplicated at some points in their path, the congestion resulting
  1327.    from looping packets may be particularly severe.
  1328.  
  1329.    Another unpleasant complication of looping occurs if the congestion
  1330.    caused by the loop interferes with the routing protocol. It is
  1331.    possible for the congestion caused by looping to cause routing
  1332.    protocol control packets to be discarded, with the result that the
  1333.    routing protocol becomes unstable. For example this could lengthen
  1334.    the duration of the loop.
  1335.  
  1336.    In normal operation of IP networks the impact of congestion is
  1337.    limited by the fact that TCP backs off (i.e., transmits substantially
  1338.    less traffic) in response to lost packets. Where the congestion is
  1339.    caused by looping, the combination of TTL and the resulting discard
  1340.    of looping packets, plus the reduction in offered traffic, can limit
  1341.  
  1342.  
  1343.  
  1344. Callon et al.          Expires November 12, 1997               [Page 24]
  1345.  
  1346. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1347.  
  1348.  
  1349.    the resulting impact on the network. TCP backoff however does not
  1350.    solve the problem if the looping packets are not discarded (for
  1351.    example, if the loop is over an ATM subnetwork where TTL is not
  1352.    used).
  1353.  
  1354.    Methods for dealing with loops are discussed in section 4.3.
  1355.  
  1356. 3.6 Operations and Management
  1357.  
  1358.    Operations and management of networks is critically important. This
  1359.    implies that MPLS must support operations, administration,  and
  1360.    maintenance facilities at least as extensive as those supported in
  1361.    current IP networks.
  1362.  
  1363.    In most ways this is a relatively simple requirement to meet. Given
  1364.    that all MPLS nodes run normal IP routing protocols, it is
  1365.    straightforward to expect them to participate in normal IP network
  1366.    management protocols.
  1367.  
  1368.    There is one issue which has been identified and which needs to be
  1369.    addressed by the MPLS effort: There is an issue with regard to
  1370.    operation of Traceroute over MPLS networks. Note that other O&M
  1371.    issues may be identified in the future.
  1372.  
  1373.    Traceroute is a very commonly used network management tool.
  1374.    Traceroute is based on use of the TTL field: A station trying to
  1375.    determine the route from itself to a specified address transmits
  1376.    multiple IP packets, with the TTL field set to 1 in the first packet,
  1377.    2 in the second packet, etc.. This causes each router along the path
  1378.    to send back an ICMP error report for TTL exceeded. This in turn
  1379.    allows the station to determine the set of routers along the route.
  1380.    For example, this can be used to determine where a problem exists (if
  1381.    no router responds past some point, the last router which responds
  1382.    can become the starting point for a search to determine the cause of
  1383.    the problem).
  1384.  
  1385.    When MPLS is operating over ATM or Frame Relay networks there is no
  1386.    TTL field to decrement (and ATM and Frame Relay forwarding hardware
  1387.    does not decrement TTL). This implies that it is not straightforward
  1388.    to have Traceroute operate in this environment.
  1389.  
  1390.    There is the question of whether we *want* all routers along a path
  1391.    to be visible via traceroute. For example, an ISP probably doesn't
  1392.    want to expose the interior of their network to a customer. However,
  1393.    the issue of whether a network's policy will allow the interior of
  1394.    the network to be visible should be independent of whether is it
  1395.    possible for some users to see the interior of the network. Thus
  1396.    while there clearly should be the possibility of using policy
  1397.  
  1398.  
  1399.  
  1400. Callon et al.          Expires November 12, 1997               [Page 25]
  1401.  
  1402. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1403.  
  1404.  
  1405.    mechanisms to block traceroute from being used to see the interior of
  1406.    the network, this does not imply that it is okay to develop protocol
  1407.    mechanisms which break traceroute from working.
  1408.  
  1409.    There is also the question of whether the interior of a MPLS network
  1410.    is analogous to a normal IP network, or whether it is closer to the
  1411.    interior of a layer 2 network (for example, an ATM subnet). Clearly
  1412.    IP traceroute cannot be used to expose the interior of an ATM subnet.
  1413.    When a packet is crossing an ATM subnetwork (for example, between an
  1414.    ingress and an egress router which are attached to the ATM subnet)
  1415.    traceroute can be used to determine the router to router path, but
  1416.    not the path through the ATM switches which comprise the ATM subnet.
  1417.    Note here that MPLS forms a sort of "in between" special case:
  1418.    Routing is based on normal IP routing protocols, the equivalent of
  1419.    call setup (label binding/exchange) is based on MPLS-specific
  1420.    protocols, but forwarding is based on normal L2 ATM forwarding. MPLS
  1421.    therefore supersedes the normal ATM-based methods that would be used
  1422.    to eliminate loops and/or trace paths through the ATM subnet.
  1423.  
  1424.    It is generally agreed that Traceroute is a relatively "ugly" tool,
  1425.    and that a better tool for tracing the route of a packet would be
  1426.    preferable. However, no better tool has yet been designed or even
  1427.    proposed. Also, however ugly Traceroute may be, it is nonetheless
  1428.    very useful, widely deployed, and widely used. In general, it is
  1429.    highly preferable to define, implement, and deploy a new tool, and to
  1430.    determine through experience that the new tool is sufficient, before
  1431.    breaking a tool which is as widely used as traceroute.
  1432.  
  1433.    Methods that may be used to either allow traceroute to be used in an
  1434.    MPLS network, or to replace traceroute, are discussed in section
  1435.    4.14.
  1436.  
  1437.  
  1438. 4. Technical Approaches
  1439.  
  1440.    We believe that section 4 is probably less complete than other
  1441.    sections. Additional subsections are likely to be needed as a result
  1442.    of additional discussions in the MPLS working group.
  1443.  
  1444. 4.1 Label Distribution
  1445.  
  1446.    A fundamental requirement in MPLS is that an LSR forwarding label
  1447.    switched traffic to another LSR apply a label to that traffic which
  1448.    is meaningful to the other (receiving the traffic) LSR. LSR's could
  1449.    learn about each other's labels in a variety of ways. We call the
  1450.    general topic "label distribution".
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. Callon et al.          Expires November 12, 1997               [Page 26]
  1457.  
  1458. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1459.  
  1460.  
  1461. 4.1.1 Explicit Label Distribution
  1462.  
  1463.    Explicit label distribution anticipates the specification by MPLS of
  1464.    a standard protocol for label distribution. Two of the possible
  1465.    approaches [TDP] [ARIS] that are oriented toward topology driven
  1466.    label distribution. One other approach [FANP], in contrast, makes use
  1467.    of traffic driven label distribution.
  1468.  
  1469.    We expect that the label distribution protocol (LDP) which emerges
  1470.    from the MPLS WG is likely to inherit elements from one or more of
  1471.    possible approaches.
  1472.  
  1473.    Consider LSR A forwarding traffic to LSR B. We call A the upstream
  1474.    (wrt to dataflow) LSR and B the downstream LSR. A must apply a label
  1475.    to the traffic that B "understands". Label distribution must ensure
  1476.    that the "meaning" of the label will be communicated between A and B.
  1477.    An important question is whether A or B (or some other entity)
  1478.    allocates the label.
  1479.  
  1480.    In this discussion we are talking about the allocation and
  1481.    distribution of labels between two peer LSRs  that are on a single
  1482.    segment of what may be a longer path. A related but in fact entirely
  1483.    separate issue is
  1484.  
  1485.    the question of where control of the whole path resides. In essence
  1486.    there are two models; by analogy to upstream and downstream for a
  1487.    single segment we can talk about ingress and egress for an LSP (or to
  1488.    and from a label swapping "domain"). In one model a path is setup
  1489.    from ingress to egress in the other from egress to ingress.
  1490.  
  1491. 4.1.1.1 Downstream Label Allocation
  1492.  
  1493.    "Downstream Label Allocation" refers to a method where the label
  1494.    allocation is done by the downstream LSR, i.e. the LSR that uses the
  1495.    label as an index into its switching tables.
  1496.  
  1497.    This is, arguably, the most natural label allocation/distribution
  1498.    mode for unicast traffic. As an LSR build its routing tables (we
  1499.    consider here control driven allocation of tags) it is free, within
  1500.    some limits we will discuss, to allocate labels to in any manner that
  1501.    may be convenient to the particular implementation. Since the labels
  1502.    that it allocates will be those upon which it subsequently makes
  1503.    forwarding decisions we assume implementations will perform the
  1504.    allocation in an optimal manner. Having allocated labels the default
  1505.    behavior is to distribute the labels (and bindings) to all peers.
  1506.  
  1507.    In some cases (particularly with ATM) there may be a limited number
  1508.    of labels which may be used across an interface, and/or a limited
  1509.  
  1510.  
  1511.  
  1512. Callon et al.          Expires November 12, 1997               [Page 27]
  1513.  
  1514. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1515.  
  1516.  
  1517.    number of label assignments which may be supported by a single
  1518.    device. Operation in this case may make use of "on demand" label
  1519.    assignment. With this approach, an LSR may for example request a
  1520.    label for a route from a particular peer only when its routing
  1521.    calculations indicate that peer to be the new next hop for the route.
  1522.  
  1523. 4.1.1.2 Upstream Label Allocation
  1524.  
  1525.    "Upstream Label Allocation" refers to a method where the label
  1526.    allocation is done by the upstream LSR. In this case the LSR choosing
  1527.    the label (the upstream LSR) and the LSR which needs to interpret
  1528.    packets using the label (the downstream LSR) are not the same node.
  1529.    We note here that in the upstream LSR the label at issue is not used
  1530.    as an index into the switching tables but rather is found as the
  1531.    result of a lookup on those tables.
  1532.  
  1533.    The motivation for upstream label allocation comes from the
  1534.    recognition that it might be possible to optimize multicast machinery
  1535.    in an LSR if it were possible to use the same label on all output
  1536.    ports for which a particular multicast packet/cell were destined.
  1537.    Upstream assignment makes this possible.
  1538.  
  1539. 4.1.1.3 Other Label Allocation Methods
  1540.  
  1541.    Another option would be to make use of label values which are unique
  1542.    within the MPLS domain (implying that a domain-wide allocation would
  1543.    be needed). In this case, any stream to a particular MPLS egress node
  1544.    could make use of the label of that node (implying that label values
  1545.    do not need to be swapped at intermediate nodes).
  1546.  
  1547.    With this method of label allocation, there is a choice to be made
  1548.    regarding the scope over which a label is unique. One approach is to
  1549.    configure each node in an MPLS domain with a label which is unique in
  1550.    that domain. Another approach is to use a truly global identifier
  1551.    (for example the IEEE 48 bit identifier), where each MPLS-capable
  1552.    node would be stamped at birth with a truly globally unique
  1553.    identifier. The point of this global approach is to simplify
  1554.    configuration in each MPLS domain by eliminating the need to
  1555.    configure label IDs.
  1556.  
  1557. 4.1.2 Piggybacking on Other Control Messages
  1558.  
  1559.    While we have discussed use of an explicit MPLS LDP we note that
  1560.    there are several existing protocols that can be easily modified to
  1561.    distribute both routing/control and label information. This could be
  1562.    done with any of OSPF, BGP, RSVP and/or PIM. A particular
  1563.    architectural elegance of these schemes is that label distribution
  1564.    uses the same mechanisms as are used in distribution of the
  1565.  
  1566.  
  1567.  
  1568. Callon et al.          Expires November 12, 1997               [Page 28]
  1569.  
  1570. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1571.  
  1572.  
  1573.    underlying routing or control information.
  1574.  
  1575.    When explicit label distribution is used, the routing computation and
  1576.    label distribution are decoupled. This implies a possibility that at
  1577.    some point you may either have a route to a specific destination
  1578.    without an associated label, and/or a label for a specific
  1579.    destination which makes use of a path which you are no longer using.
  1580.    Piggybacking label distribution on the operation of the routing
  1581.    protocol is one way to eliminate this decoupling.
  1582.  
  1583.    Piggybacking label distribution on the routing protocol introduces an
  1584.    issue regarding how to negotiate acceptable label values and what to
  1585.    do if an invalid label is received. This is discussed in section
  1586.    4.1.3.
  1587.  
  1588. 4.1.3 Acceptable Label Values
  1589.  
  1590.    There are some constraints on which label values may be used in
  1591.    either allocation mode. Clearly the label values must lie within the
  1592.    allowable range described in the encapsulation standards that the
  1593.    MPLS WG will produce. The label value used must also, however, lie
  1594.    within a range that the peer  LSR is capable of supporting. We
  1595.    imagine that certain machines, for example ATM switches operating as
  1596.    LSRs may, due to operational or implementation restrictions, support
  1597.    a label space more limited than that bounded by the valid range found
  1598.    in the encapsulation standard. This implies that an advertisement or
  1599.    negotiation mechanism for useable label range may be a part of the
  1600.    MPLS LDP. When operating over ATM using ATM forwarding hardware, due
  1601.    to the need for compatibility with the existing use of the ATM
  1602.    VPI/VCI space, it is quite likely that an explicit mechanism will be
  1603.    needed for label range negotiation.
  1604.  
  1605.    In addition we note that LDP may be one of a number of mechanism used
  1606.    to distribute labels between any given pair of LSRs. Clearly where
  1607.    such multiple mechanisms exist care must be taken to coordinate the
  1608.    allocation of label values. A single label value must  have a unique
  1609.    meaning to the LSR that distributes it.
  1610.  
  1611.    There is an issue regarding how to allow negotiation of acceptable
  1612.    label values if label distribution is piggybacked with the routing
  1613.    protocol. In this case it may be necessary either to require
  1614.    equipment to accept any possible label value, or to configure devices
  1615.    to know which range of label values may be selected. It is not clear
  1616.    in this case what to do if an invalid label value is received as
  1617.    there may be no means of sending a NAK.
  1618.  
  1619.    A similar issue occurs with multicast traffic over broadcast media,
  1620.    where there may be multiple nodes which receive the same transmission
  1621.  
  1622.  
  1623.  
  1624. Callon et al.          Expires November 12, 1997               [Page 29]
  1625.  
  1626. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1627.  
  1628.  
  1629.    (using a single label value). Here again it may be "non-trivial" how
  1630.    to allow n-party negotiation of acceptable label values.
  1631.  
  1632. 4.1.4 LDP Reliability
  1633.  
  1634.    The need for reliable label distribution depends upon the relative
  1635.    performance of L2 and L3 forwarding, as well as the relationship
  1636.    between label distribution and the routing protocol operation.
  1637.  
  1638.    If label distribution is tied to the operation of the routing
  1639.    protocol, then a reasonable protocol design would ensure that labels
  1640.    are distributed successfully as long as the associated route and/or
  1641.    reachability advertisement is distributed successfully. This implies
  1642.    that the reliability of label distribution will be the same as the
  1643.    reliability of route distribution.
  1644.  
  1645.    If there is a very large difference between L2 and L3 forwarding
  1646.    performance, then the cost of failing to deliver a label is
  1647.    significant. In this case it is important to ensure that labels are
  1648.    distributed reliably. Given that LDP needs to operate in a wide
  1649.    variety of environments with a wide variety of equipment, this
  1650.    implies that it is important for any LDP developed by the MPLS WG to
  1651.    ensure reliable delivery of label information.
  1652.  
  1653. 4.1.5 Label Purge Mechanisms
  1654.  
  1655.    Another issue to be considered is the "lifetime" of label data once
  1656.    it arrives at an LSR, and the method of purging label data. There are
  1657.    several methods that could be used either separately, or (more
  1658.    likely) in combination.
  1659.  
  1660.    One approach is for label information to be timed out. With this
  1661.    approach a lifetime is distributed along with the label value. The
  1662.    label value may be refreshed prior to timing out. If the label is not
  1663.    refreshed prior to timing out it is discarded. In this case each
  1664.    lifetime and timer may apply to a single label, or to a group of
  1665.    labels (e.g., all labels selected by the same node).
  1666.  
  1667.    Similarly, two peer nodes may make use of an MPLS peer keepalive
  1668.    mechanism. This implies exchange of MPLS control packets between
  1669.    neighbors on a periodic basis. This in general is likely to use a
  1670.    smaller timeout value than label value timers (analogous to the fact
  1671.    that the OSPF HELLO interval is much shorter than the OSPF LSA
  1672.    lifetime). If the peer session between two MPLS nodes fails (due to
  1673.    expiration of the associated timer prior to reception of the refresh)
  1674.    then associated label information is discarded.
  1675.  
  1676.    If label information is piggybacked on the routing protocol then the
  1677.  
  1678.  
  1679.  
  1680. Callon et al.          Expires November 12, 1997               [Page 30]
  1681.  
  1682. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1683.  
  1684.  
  1685.    timeout mechanisms would also be taken from the associated routing
  1686.    protocol (note that routing protocols in general have mechanisms to
  1687.    invalidate stale routing information).
  1688.  
  1689.    An alternative method for invalidating labels is to make use of an
  1690.    explicit label removal message.
  1691.  
  1692. 4.2 Stream Merging
  1693.  
  1694.    In order to scale O(n) (rather than O(n-squared), MPLS makes use of
  1695.    the concept of stream merge. This makes use of multipoint to point
  1696.    streams in order to allow multiple streams to be merged into one
  1697.    stream.
  1698.  
  1699.    Types of Stream Merge
  1700.  
  1701.    There are several types of stream merge that can be used, depending
  1702.    upon the underlying media.
  1703.  
  1704.    When MPLS is used over frame based media merging is straightforward.
  1705.    All that is required for stream merge to take place is for a node to
  1706.    allow multiple upstream labels to be forwarded the same way and
  1707.    mapped into a single downstream label. This is referred to as frame
  1708.    merge.
  1709.  
  1710.    Operation over ATM media is less straightforward. In ATM, the data
  1711.    packets are encapsulated into an ATM Adaptation Layer, say AAL5, and
  1712.    the AAL5 PDU is segmented into ATM cells with a VPI/VCI value and the
  1713.    cells are transmitted in sequence.  It is contingent on ATM switches
  1714.    to keep the cells of a PDU (or with the same VPI/VCI value)
  1715.    contiguous and in sequence.  This is because the device that
  1716.    reassembles the cells to re-form the transmitted PDU expects the
  1717.    cells to be contiguous and in sequence, as there isn't sufficient
  1718.    information in the ATM cell header (unlike IP fragmentation) to
  1719.    reassemble the PDU with any cell order. Hence, if cells from several
  1720.    upstream link are transmitted onto the same downstream VPI/VCI, then
  1721.    cells from one PDU can get interleaved with cells from another PDU on
  1722.    the outgoing VPI/VCI, and result in corruption of the original PDUs
  1723.    by mis-sequencing the cells of each PDU.
  1724.  
  1725.    The most straightforward (but erroneous) method of merging in an ATM
  1726.    environment would be to take the cells from two incoming VCs and
  1727.    merge them into a single outgoing VCI. If this was done without any
  1728.    buffering of cells then cells from two or more packets could end up
  1729.    being interleaved into a single AAL5 frame. Therefore the problem
  1730.    when operating over ATM is how to avoid interleaving of cells from
  1731.    multiple sources.
  1732.  
  1733.  
  1734.  
  1735.  
  1736. Callon et al.          Expires November 12, 1997               [Page 31]
  1737.  
  1738. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1739.  
  1740.  
  1741.    There are two ways to solve this interleaving problem, which are
  1742.    referred to as VC merge and VP merge.
  1743.  
  1744.    VC merge allows multiple VCs to be merged into a single outgoing VC.
  1745.    In order for this to work the node performing the merge needs to keep
  1746.    the cells from one AAL5 frame (e.g., corresponding to an IP packet)
  1747.    separate from the cells of other AAL5 frames. This may be done by
  1748.    performing the SAR function in order to reassemble each IP packet
  1749.    before forwarding that packet. In this case VC merge is essentially
  1750.    equivalent to frame merge. An alternative is to buffer the cells of
  1751.    one AAL5 frame together, without actually reassembling them. When the
  1752.    end of frame indicator is reached that frame can be forwarded. Note
  1753.    however that both forms of VC merge requires that the entire AAL5
  1754.    frame be received before any cells corresponding to that frame be
  1755.    forwarded. VC merge therefore requires capabilities which are
  1756.    generally not available in most existing ATM forwarding hardware.
  1757.  
  1758.    The alternative for use over ATM media is VP merge. Here multiple VPs
  1759.    can be merged into a single VP. Separate VCIs within the merged VP
  1760.    are used to distinguish frames (e.g., IP packets) from different
  1761.    sources. In some cases, one VP may be used for the tree from each
  1762.    ingress node to a single egress node.
  1763.  
  1764.    VP merge requires that the VCIs be coordinated to ensure uniqueness.
  1765.    This may be accomplished either by pre-configuring each node with a
  1766.    unique VCI value (or values), or by having some one node (most likely
  1767.    they root of the multipoint to point tree) coordinate the VCI values
  1768.    used within the VP. Note also that if the root coordinates the VCI
  1769.    space, then some protocol mechanism will be needed to allow this to
  1770.    occur. How hard this is to do depends somewhat upon whether the root
  1771.    is otherwise involved in coordinating the multipoint to point tree.
  1772.    For example, allowing one node (such as the root) to coordinate the
  1773.    tree may be useful for purposes of coordinating load sharing. Thus
  1774.    whether or not the issue of coordinating the VCI space is significant
  1775.    or trivial may depend upon other design choices which at first glance
  1776.    may have appeared to be independent protocol design choices.
  1777.  
  1778.    Buffering Issues Related To Stream Merge
  1779.  
  1780.    There is an issue regarding the amount of buffering required for
  1781.    frame merge, VC merge, and VP merge. Frame merge and VC merge
  1782.    requires that intermediate points buffer incoming packets until the
  1783.    entire packet arrives. This is essentially the same as is required in
  1784.    traditional IP routers.
  1785.  
  1786.    VP merge allows cells to be transmitted by intermediate nodes as soon
  1787.    as they arrive, reducing the buffering and latency at intermediate
  1788.    nodes. However, the use of VP merge implies that cells from multiple
  1789.  
  1790.  
  1791.  
  1792. Callon et al.          Expires November 12, 1997               [Page 32]
  1793.  
  1794. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1795.  
  1796.  
  1797.    packets will arrive at the egress node interleaved on separate VCIs.
  1798.    This in turn implies that the egress node may have somewhat increased
  1799.    buffering requirements. To a large extent egress nodes for some
  1800.    destinations will be intermediate nodes for other destinations,
  1801.    implying that increase in buffers required for some purpose (egress
  1802.    traffic) will be offset by a reduction in buffers required for other
  1803.    purposes (transit traffic). Also, routers today typically deal with
  1804.    high-fanout channelized interfaces and with multi-VC ATM interfaces,
  1805.    implying that the requirement of buffering simultaneously arriving
  1806.    cells from multiple packets and sources is something that routers
  1807.    typically do today. This is not meant to imply that the required
  1808.    buffer size and performance is inexpensive, but rather is meant to
  1809.    observe that it is a solvable issue.
  1810.  
  1811. 4.3 Loop Handling
  1812.  
  1813.    Generally, methods for dealing with loops can be split into three
  1814.    categories: Loop Survival makes use of methods which minimize the
  1815.    impact of loops, for example by limiting the amount of network
  1816.    resources which can be consumed by a loop; Loop Detection allows
  1817.    loops to be set up, but later detects these loops and eliminates
  1818.    them; Loop Prevention provides methods for avoiding setting up L2
  1819.    forwarding in a way which results in a L2 loop;
  1820.  
  1821.    Note that we are concerned here only with loops that occur in L2
  1822.    forwarding. Transient loops at L3 will continue to be part of the
  1823.    normal IP operation, and will be handled the way that IP has been
  1824.    handling loops for years (see section 3.5).
  1825.  
  1826.    Loop Survival
  1827.  
  1828.    Loop Survival refers to methods that are used to allow the network to
  1829.    operate well even though short term transient loops may be formed by
  1830.    the routing protocol. The basic approach to loop survival is to limit
  1831.    the amount of network resources which are consumed by looping
  1832.    packets, and to minimize the effect on other (non-looping) traffic.
  1833.    Note that loop survival is the method used by conventional IP
  1834.    forwarding, and is therefore based on long and relatively successful
  1835.    experience in the Internet.
  1836.  
  1837.    The most basic method for loop survival is based on the use to a TTL
  1838.    (Time To Live) field. The TTL field is decremented at each hop. If
  1839.    the TTL field reaches zero, then the packet is discarded. This method
  1840.    works well over those media which has a TTL field. This explicitly
  1841.    includes L3 IP forwarding. Also, assuming that the core MPLS
  1842.    specifications will include definition of a "shim" MPLS header for
  1843.    use over those media which do not have their own labels, in order to
  1844.    carry labels for use in forwarding of user data, it is likely that
  1845.  
  1846.  
  1847.  
  1848. Callon et al.          Expires November 12, 1997               [Page 33]
  1849.  
  1850. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1851.  
  1852.  
  1853.    the shim header will also include a TTL field.
  1854.  
  1855.    However, there is considerable interest in using MPLS over L2
  1856.    protocols which provide their own labels, with the L2 label used for
  1857.    MPLS forwarding. Specific L2 protocols which offer a label for this
  1858.    purpose include ATM and Frame Relay. However, neither ATM nor Frame
  1859.    Relay have a TTL field. This implies that this method cannot be used
  1860.    when basic ATM or Frame Relay forwarding is being used.
  1861.  
  1862.    Another basic method for loop survival is the use of dynamic routing
  1863.    protocols which converge rapidly to non-looping paths. In some
  1864.    instances it is possible that congestion caused by looping data could
  1865.    effect the convergence of the routing protocol (see section 3.5).
  1866.    MPLS should be designed to prevent this problem from occurring. Given
  1867.    that MPLS uses the same routing protocols as are used for IP, this
  1868.    method does not need to be discussed further in this framework
  1869.    document.
  1870.  
  1871.    Another possible tool for loop survival is the use of fair queuing.
  1872.    This allows unrelated flows of user data to be placed in different
  1873.    queues. This helps to ensure that a node which is overloaded with
  1874.    looping user data can nonetheless forward unrelated non-looping data,
  1875.    thereby minimizing the effect that looping data has on other data. We
  1876.    cannot assume that fair queuing will always be available. In
  1877.    practice, many fair queuing implementations merge multiple streams
  1878.    into one queue (implying that the number of queues used is less than
  1879.    the number of user data flows which are present in the network).
  1880.    This implies that any data which happens to be in the same queue with
  1881.    looping data may be adversely effected.
  1882.  
  1883.    Loop Detection
  1884.  
  1885.    Loop Detection refers to methods whereby a loop may be set up at L2,
  1886.    but the loop is subsequently detected. When the loop is detected, it
  1887.    may be broken at L2 by dropping the label relationship, implying that
  1888.    packets for a set of destinations must be forwarded at L3.
  1889.  
  1890.    A possible method for loop detection is based on transmitting a "loop
  1891.    detection" control packet (LDCP) along the path towards a specified
  1892.    destination whenever the route to the destination changes. This LDCP
  1893.    is forwarded in the direction that the label specifies, with the
  1894.    labels swapped to the correct next hop value. However, normal L2
  1895.    forwarding cannot be used because each hop needs to examine the
  1896.    packet to check for loops.  The LDCP is forwarded towards that
  1897.    destination until one of the following happens: (i) The LDCP reaches
  1898.    the last MPLS node along the path (i.e. the next hop is either a
  1899.    router which is not participating in MPLS, or is the final
  1900.    destination host); (ii) The TTL of the LDCP expires (assuming that
  1901.  
  1902.  
  1903.  
  1904. Callon et al.          Expires November 12, 1997               [Page 34]
  1905.  
  1906. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1907.  
  1908.  
  1909.    the control packet uses a TTL, which is optional but not absolutely
  1910.    necessary), or (iii) The LDCP returns to the node which originally
  1911.    transmitted it. If the latter occurs, then the packet has looped and
  1912.    the node which originally transmitted the LDCP stops using the
  1913.    associated label, and instead uses L3 forwarding for the associated
  1914.    destination addresses. One problem with this method is that once a
  1915.    loop is detected it is not known when the loop clears. One option
  1916.    would be to set a timer, and to transmit a new LDCP when the timer
  1917.    expires.
  1918.  
  1919.    An alternate method counts the hops to each egress node, based on the
  1920.    routes currently available. Each node advertises its distance (in hop
  1921.    counts) to each destination. An egress node advertises the
  1922.    destinations that it can reach directly with an associated hop count
  1923.    of zero. For each destination, a node computes the hop count to that
  1924.    destination based on adding one to the hop count advertised by its
  1925.    actual next hop used for that destination. When the hop count for a
  1926.    particular destination changes, the hop counts needs to be
  1927.    readvertised.
  1928.  
  1929.    In addition, the first of the loop prevention schemes discussed below
  1930.    may be modified to provide loop detection (the details are
  1931.    straightforward, but have not been written down in time to include in
  1932.    this rough draft).
  1933.  
  1934.    Loop Prevention
  1935.  
  1936.    Loop prevention makes use of methods to ensure that loops are never
  1937.    set up at L2. This implies that the labels are not used until some
  1938.    method is used to ensure that following the label towards the
  1939.    destination, with associated label swaps at each switch, will not
  1940.    result in a loop. Until the L2 path (making use of assigned labels)
  1941.    is available, packets are forwarded at L3.
  1942.  
  1943.    Loop prevention requires explicit signaling of some sort to be used
  1944.    when setting up an L2 stream.
  1945.  
  1946.    One method of loop prevention requires that labels be propagated
  1947.    starting at the egress switch. The egress switch signals to
  1948.    neighboring switches the label to use for a particular destination.
  1949.    That switch then signals an associated label to its neighbors, etc.
  1950.    The control packets which propagate the labels also include the path
  1951.    to the egress (as a list of routerIDs). Any looping control packet
  1952.    can therefore be detected and the path not set up to or past the
  1953.    looping point.
  1954.  
  1955.    <Operation when routing changes needs to be described here in more
  1956.    detail>.
  1957.  
  1958.  
  1959.  
  1960. Callon et al.          Expires November 12, 1997               [Page 35]
  1961.  
  1962. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  1963.  
  1964.  
  1965.    Another option is to use source routing to set up label bindings from
  1966.    the egress switch to each ingress switch. This precludes the
  1967.    possibility of looping, since the entire path is computed by one
  1968.    node. This also allows non-looping paths to be set up provided that
  1969.    the egress switch has a view of the topology which is reasonably
  1970.    close to reality (if there are operational links which the egress
  1971.    switch doesn't know about, it will simply pick a path which doesn't
  1972.    use those links; if there are links which have failed but which the
  1973.    the egress switch thinks are operational, then there is some chance
  1974.    that the setup attempt will fail but in this case the attempt can be
  1975.    retried on a separate path). Note therefore that non-looping paths
  1976.    can be set up with this method in many cases where distributed
  1977.    routing plus hop by hop forwarding would not actually result in non-
  1978.    looping paths. This method is similar to the method used by standard
  1979.    ATM routing to ensure that SVCs are non-looping [PNNI].
  1980.  
  1981.    Source routing is only applicable if the routing protocol gives the
  1982.    egress switch sufficient information to set up the source route,
  1983.    implying that the protocol must be either a link state protocol (such
  1984.    as OSPF) or a path vector protocol (such as BGP). Source routing
  1985.    therefore is not appropriate as a general approach for use in any
  1986.    network regardless of the routing protocol. This method also requires
  1987.    some overhead for the call setup before label-based forwarding can be
  1988.    used. If the network topology changes in a manner which breaks the
  1989.    existing path, then a new path will need to be source routed from the
  1990.    egress switch.  Due to this overhead this method is probably only
  1991.    appropriate if other significant advantages are also going to be
  1992.    obtained from having a single node (the egress switch) coordinate the
  1993.    paths to be used. Examples of other reasons to have one node
  1994.    coordinate the paths to a single egress switch include: (i)
  1995.    Coordinating the VCI space where VP merge is used (see section 4.2);
  1996.    and (ii) Coordinating the routing of streams from multiple ingress
  1997.    switches to one egress switch so as to balance the load on multiple
  1998.    alternate paths through the network.
  1999.  
  2000.    In principle the source routing could also be done in the alternate
  2001.    direction (from ingress to egress). However, this would make it more
  2002.    difficult to merge streams if stream merge is to be used. This would
  2003.    also make it more difficult to coordinate (i) changes to the paths
  2004.    used, (ii) the VCI space assignments, and (iii) load sharing. This
  2005.    therefore makes source routing more difficult, and also reduces the
  2006.    other advantages that could be obtained from the approach.
  2007.  
  2008.    If label distribution is piggybacked on the routing protocol (see
  2009.    section 4.1.2), then loop prevention is only possible if the routing
  2010.    protocol itself does loop prevention.
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016. Callon et al.          Expires November 12, 1997               [Page 36]
  2017.  
  2018. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2019.  
  2020.  
  2021.    What To Do If A Loop Is Detected
  2022.  
  2023.    With all of these schemes, if a loop is known to exist then the L2
  2024.    label-swapped path is not set up. This leads to the obvious question
  2025.    of what does an MPLS node do when it doesn't have a label for a
  2026.    particular destination, and a packet for that destination arrives to
  2027.    be forwarded? If possible, the packet is forwarded using normal L3
  2028.    (IP) forwarding. There are two issues that this raises: (i) What
  2029.    about nodes which are not capable of L3 forwarding; (ii) Given the
  2030.    relative speeds of L2 and L3 forwarding, does this work?
  2031.  
  2032.    Nodes which are not capable of L3 forwarding obviously can't forward
  2033.    a packet unless it arrives with a label, and the associated next hop
  2034.    label has been assigned. Such nodes, when they receive a packet for
  2035.    which the next hop label has not been assigned, must discard the
  2036.    packet. It is probably safe to assume that if a node cannot forward
  2037.    an L3 packet, then it is probably also incapable of forwarding an
  2038.    ICMP error report that it originates. This implies that the packet
  2039.    will need to be discarded in this case.
  2040.  
  2041.    In many cases L2 forwarding will be significantly faster than L3
  2042.    forwarding (allowing faster forwarding is a significant motivation
  2043.    behind the work on MPLS). This implies that if a node is forwarding a
  2044.    large volume of traffic at L2, and a change in the routing protocol
  2045.    causes the associated labels to be lost (necessitating L3
  2046.    forwarding), in some cases the node will not be capable of forwarding
  2047.    the same volume of traffic at L3. This will of course require that
  2048.    packets be discarded. However, in some cases only a relatively small
  2049.    volume of traffic will need to be forwarded at L3. Thus forwarding at
  2050.    L3 when L2 is not available is not necessarily always a problem.
  2051.    There may be some nodes which are capable of forwarding equally fast
  2052.    at L2 and L3 (for example, such nodes may contain IP forwarding
  2053.    hardware which is not available in all nodes). Finally, when packets
  2054.    are lost this will cause TCP to backoff, which will in turn reduce
  2055.    the load on the network and allow the network to stabilize even at
  2056.    reduced forwarding rates until such time as the label bindings can be
  2057.    reestablished.
  2058.  
  2059.    Note that in most cases loops will be caused either by configuration
  2060.    errors, or due to short term transient problems caused by the failure
  2061.    of a link. If only one link goes down, and if routing creates a
  2062.    normal "tree-shaped" set of paths to any one destination, then the
  2063.    failure of one link somewhere in the network will effect only one
  2064.    link's worth of data passing through any one node in the network.
  2065.    This implies that if a node is capable of forwarding one link's worth
  2066.    of data at L3, then in many or most cases it will have sufficient L3
  2067.    bandwidth to handle looping data.
  2068.  
  2069.  
  2070.  
  2071.  
  2072. Callon et al.          Expires November 12, 1997               [Page 37]
  2073.  
  2074. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2075.  
  2076.  
  2077. 4.4 Interoperation with NHRP
  2078.  
  2079.    <note: Future versions of this document will contain a picture to
  2080.    clarify the discussion in this section. In addition there are
  2081.    alternate interaction scenarios which probably should be discussed
  2082.    briefly.>
  2083.  
  2084.    When label switching is used over ATM, and there exists an LSR which
  2085.    is also operating as a Next Hop Client (NHC), the possibility of
  2086.    direct interaction arises.  That is, could one switch cells between
  2087.    the two technologies without reassembly.  To enable this several
  2088.    important issues must be addressed.
  2089.  
  2090.    The encapsulation must be acceptable to both MPLS and NHRP.  If only
  2091.    a single label is used, then the null encapsulation could be used.
  2092.    Other solutions could be developed to handle label stacks.
  2093.  
  2094.    NHRP must understand and respect the granularity of  a stream.
  2095.  
  2096.    Currently NHRP resolves an IP address to an ATM address. The response
  2097.    may include a mask indicating a range of addresses. However, any VC
  2098.    to the ATM address is considered to be a viable means of packet
  2099.    delivery. Suppose that an NHC NHRPs for IP address A and gets back
  2100.    ATM address 1 and sets up a VC to address 1. Later the same NHC NHRPs
  2101.    for a totally unrelated IP address B and gets back the same ATM
  2102.    address 1. In this case normal NHRP behavior allows the NHC to use
  2103.    the VC (that was set up for destination A) for traffic to B.
  2104.  
  2105.    Note: In this section we will refer to a VC set up as a result of an
  2106.    NHRP query/response as a shortcut VC.
  2107.  
  2108.    If one expects to be able to label switch the packets being received
  2109.    from a shortcut VC, then the label switch needs to be informed as to
  2110.    exactly what traffic will arrive on that VC and that mapping cannot
  2111.    change without notice. Currently there exists no mechanism in the
  2112.    defined signaling of an shortcut VC.  Several means are possible.  A
  2113.    binding, equivalent to the binding in LDP, could be sent in the setup
  2114.    message.  Alternatively, the binding of prefix to label could remain
  2115.    in an LDP session (or whatever means of label distribution as
  2116.    appropriate) and the setup could carry a binding of the label to the
  2117.    VC. This would leave the binding mechanism for shortcut VCs
  2118.    independent of the label distribution mechanism.
  2119.  
  2120.    A further architectural challenge exists in that label switching is
  2121.    inherently unidirectional whereas ATM is bi-directional.  The above
  2122.    binding semantics are fairly straight-forward.  However, effectively
  2123.    using the reverse direction of a VC presents further challenges.
  2124.  
  2125.  
  2126.  
  2127.  
  2128. Callon et al.          Expires November 12, 1997               [Page 38]
  2129.  
  2130. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2131.  
  2132.  
  2133.    Label switching must also respect the granularity of the shortcut VC.
  2134.    Without VC merge, this means a single label switched flow must map to
  2135.    a VC.  In the case of VC merge, multiple label switched streams could
  2136.    be merged onto a single shortcut VC.  But given the asymmetry
  2137.    involved, there is perhaps little practical use
  2138.  
  2139.    Another issue is one of practicality and usefulness.  What is sent
  2140.    over the VC must be at a fine enough granularity to be label switched
  2141.    through receiving domain.  One potential place where the two
  2142.    technologies might come into play is in moving data from one campus
  2143.    via the wide-area to another campus.  In such a scenario, the two
  2144.    technologies would border precisely at the point where summarization
  2145.    is likely to occur.  Each campus would have a detailed understanding
  2146.    of itself, but not of the other campus.  The wide-area is likely to
  2147.    have summarized knowledge only. But at such a point level 3
  2148.    processing becomes the likely solution.
  2149.  
  2150. 4.5 Operation in a Hierarchy
  2151.  
  2152.    <Text to be provided later>
  2153.  
  2154. 4.6 Stacked Labels in a Flat Routing Environment
  2155.  
  2156.    <Text to be provided later>
  2157.  
  2158. 4.7 Multicast
  2159.  
  2160.    <Text to be provided later>
  2161.  
  2162. 4.8 Multipath
  2163.  
  2164.    Many IP routing protocols support the notion of equal-cost multipath
  2165.    routes, in which a router maintains multiple next hops for one
  2166.    destination prefix when two or more equal-cost paths to the prefix
  2167.    exist. There are a few possible approaches for handling multipath
  2168.    with MPLS.
  2169.  
  2170.    In this discussion we will use the term "multipath node" to mean a
  2171.    node which is keeping track of multiple switched paths from itself
  2172.    for a single destination.
  2173.  
  2174.    The first approach maintains a separate switched path from each
  2175.    ingress node via one or more multipath nodes to a merge point. This
  2176.    requires MPLS to distinguish the separate switched paths, so that
  2177.    learning of a new switched path is not misinterpreted as a
  2178.    replacement of the same switched path. This also requires an ingress
  2179.    MPLS node be capable of distributing the traffic among the multiple
  2180.    switched paths. This approach preserves switching performance, but at
  2181.  
  2182.  
  2183.  
  2184. Callon et al.          Expires November 12, 1997               [Page 39]
  2185.  
  2186. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2187.  
  2188.  
  2189.    a cost of proliferating the number of switched paths. For example,
  2190.    each switched path consumes a distinct label.
  2191.  
  2192.    The second approach establishes only one switched path from any one
  2193.    ingress node to a destination. However, when the paths from two
  2194.    different ingress nodes happen to arrive at the same node, that node
  2195.    may use different paths for each (implying that the node becomes a
  2196.    multipath node). Thus the switched path chosen by the multipath node
  2197.    may assign a different downstream path to each incoming stream. This
  2198.    conserves switched paths and maintains switching performance, but
  2199.    cannot balance loads across downstream links as well as the other
  2200.    approaches, even if switched paths are selectively assigned. With
  2201.    this approach is that the L2 path may be different from the normal L3
  2202.    path, as traffic that otherwise would have taken multiple distinct
  2203.    paths is forced onto a single path.
  2204.  
  2205.    The third approach allows a single stream arriving at a multipath
  2206.    node to be split into multiple streams, by using L3 forwarding at the
  2207.    multipath node. For example, the multipath node might choose to use a
  2208.    hash function on the source and destination IP addresses, in order to
  2209.    avoid misordering packets between any one IP source and destination.
  2210.    This approach conserves switched paths at the cost of switching
  2211.    performance.
  2212.  
  2213. 4.9 Host Interactions
  2214.  
  2215.    There are a range of options for host interaction with MPLS:
  2216.  
  2217.    The most straightforward approach is no host involvement. Thus host
  2218.    operation may be completely independent of MPLS, rather hosts operate
  2219.    according to other IP standards. If there is no host involvement then
  2220.    this implies that the first hop requires an L3 lookup.
  2221.  
  2222.    If the host is ATM attached and doing NHRP, then this would allow the
  2223.    host to set up a Virtual Circuit to a router. However this brings up
  2224.    a range of issues as was discussed in section 4.4 ("interoperation
  2225.    with NHRP").
  2226.  
  2227.    On the ingress side, it is reasonable to consider having the first
  2228.    hop LSR provide labels to the hosts, and thus have hosts attach
  2229.    labels for packets that they transmit. This could allow the first hop
  2230.    LSR to avoid an L3 lookup. It is reasonable here to have the host
  2231.    request labels only when needed, rather than require the host to
  2232.    remember all labels assigned for use in the network.
  2233.  
  2234.    On the egress side, it is questionable whether hosts should be
  2235.    involved. For scaling reasons, it would be undesirable to use a
  2236.    different label for reaching each host.
  2237.  
  2238.  
  2239.  
  2240. Callon et al.          Expires November 12, 1997               [Page 40]
  2241.  
  2242. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2243.  
  2244.  
  2245. 4.10 Explicit Routing
  2246.  
  2247.    This section is FFS.
  2248.  
  2249. 4.11 Traceroute
  2250.  
  2251.    This section is FFS.
  2252.  
  2253. 4.12 Security
  2254.  
  2255.    Security in a network using MPLS should be relatively similar to
  2256.    security in a normal IP network.
  2257.  
  2258.    Routing in an MPLS network uses precisely the same IP routing
  2259.    protocols as are currently used with IP. This implies that route
  2260.    filtering is unchanged from current operation. Similarly, the
  2261.    security of the routing protocols is not effected by the use of MPLS.
  2262.  
  2263.    Packet filtering also may be done as in normal IP. This will require
  2264.    either (i) that label swapping be terminated prior to any firewalls
  2265.    performing packet filtering (in which case a separate instance of
  2266.    label swapping may optionally be started after the firewall); or (ii)
  2267.    that firewalls "look past the labels", in order to inspect the entire
  2268.    IP packet contents. In this latter case note that the label may imply
  2269.    semantics greater than that contained in the packet header: In
  2270.    particular, a particular label value may imply that the packet is to
  2271.    take a particular path after the firewall. In environments in which
  2272.    this is considered to be a security issue it may be desirable to
  2273.    terminate the label prior to the firewall.
  2274.  
  2275.    Note that in principle labels could be used to speed up the operation
  2276.    of firewalls: In particular, the label could be used as an index into
  2277.    a table which indicates the characteristics that the packet needs to
  2278.    have in order to pass through the firewall. Depending upon
  2279.    implementation considerations matching the contents of the packet to
  2280.    the contents of the table may be quicker than parsing the packet in
  2281.    the absence of the label.
  2282.  
  2283.  
  2284. 5. References
  2285.  
  2286.    [1] "ARIS: Aggregate Route-Based IP Switching", A. Viswanathan, N.
  2287.        Feldman, R. Boivie, R. Woundy, work in progress, Internet Draft
  2288.        <draft-viswanathan-aris-overview-00.txt>, March 1997.
  2289.  
  2290.    [2] "ARIS Specification", N. Feldman, A. Viswanathan, work in
  2291.        progress, Internet Draft <draft-feldman-aris-spec-00.txt>, March
  2292.        1997.
  2293.  
  2294.  
  2295.  
  2296. Callon et al.          Expires November 12, 1997               [Page 41]
  2297.  
  2298. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2299.  
  2300.  
  2301.    [3] "ARIS Support for LAN Media Switching", S. Blake, A. Ghanwani, W.
  2302.        Pace, V. Srinivasan, work in progress, Internet Draft <draft-
  2303.        blake-aris-lan-00.txt>, March 1997.
  2304.  
  2305.    [4] "Tag Switching Architecture - Overview", Rekhter, Davie, Katz,
  2306.        Rosen, Swallow, Farinacci, work in progress, Internet Draft
  2307.        <draft-rekhter-tagswitch-arch-00.txt>
  2308.  
  2309.    [5] Tag distribution Protocol", Doolan, Davie, Katz, Rekhter, Rosen,
  2310.        work in progress, internet draft <draft-doolan-tdp-spec-00.txt>
  2311.  
  2312.    [6] "Use of Tag Switching with ATM", Davie, Doolan, Lawrence,
  2313.        McGloghrie, Rekhter, Rosen, Swallow, work in progress, Internet
  2314.        Draft <draft-davie-tag-switching-atm-01.txt>
  2315.  
  2316.    [7] "Label Switching: Label Stack Encodings", Rosen, Rekhter, Tappan,
  2317.        Farinacci, Fedorkow, work in progress, internet draft <draft-
  2318.        rosen-tag-stack-01.txt>
  2319.  
  2320.    [8] "Partitioning Tag Space among Multicast Routers on a Common
  2321.        Subnet", Farinacci, work in progress, internet draft <draft-
  2322.        farinacci-multicast-tag-part-00.txt>
  2323.  
  2324.    [9] "Multicast Tag Binding and Distribution using PIM", Farinacci,
  2325.        Rekhter, work in progress, internet draft <draft-farinacci-
  2326.        multicast-tagsw-00.txt>
  2327.  
  2328.    [10] "Toshiba's Router Architecture Extensions fir ATM: Overview",
  2329.         Katsube, Nagami, Esaki, RFC2098.TXT.
  2330.  
  2331.    [11] "Soft State Switching: A Proposal to Extend RSVP for Switching
  2332.         RSVP Flows", A. Viswanathan, V. Srinivasan, work in progress,
  2333.         Internet Draft <draft-viswanathan-aris-rsvp-00.txt>, March 1997.
  2334.  
  2335.    [12] "Integrated Services in the Internet Architecture: an Overview",
  2336.         R. Braden et al, RFC 1633, June 1994.
  2337.  
  2338.    [13] "Resource ReSerVation Protocol (RSVP), Version 1 Functional
  2339.         Specification", work in progress, draft-ietf-rsvp-spec-14.txt,
  2340.         November 1996
  2341.  
  2342.    [14] "OSPF version 2", J. Moy, RFC 1583, March 1994.
  2343.  
  2344.    [15] "A Border Gateway Protocol 4 (BGP-4)", Y. Rekhter and T. Li,
  2345.         RFC 1771, March 1995.
  2346.  
  2347.    [16] "Ipsilon Flow Management Protocol Specification for IPv4 Version
  2348.         1.0", P. Newman et al., RFC 1953, May 1996.
  2349.  
  2350.  
  2351.  
  2352. Callon et al.          Expires November 12, 1997               [Page 42]
  2353.  
  2354. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2355.  
  2356.  
  2357.    [17] "ATM Forum Private Network-Network Interface Specification,
  2358.         Version 1.0", ATM Forum af-pnni-0055.000, March 1996.
  2359.  
  2360.    [18] "NBMA Next Hop Resolution Protocol (NHRP)", J. Luciani et al.,
  2361.         work in progress, draft-ietf-rolc-nhrp-11.txt, March 1997.
  2362.  
  2363.  
  2364. 6. Author's Addresses
  2365.  
  2366.    Ross Callon
  2367.    Cascade Communications Corp.
  2368.    5 Carlisle Road
  2369.    Westford, MA  01886
  2370.    508-952-7412
  2371.    rcallon@casc.com
  2372.  
  2373.    Paul Doolan
  2374.    Cisco Systems, Inc
  2375.    250 Apollo Drive
  2376.    Chelmsford, MA 01824
  2377.    508-634-1204
  2378.    pdoolan@cisco.com
  2379.  
  2380.    Nancy Feldman
  2381.    IBM Corp.
  2382.    17 Skyline Drive
  2383.    Hawthorne NY 10532
  2384.    914-784-3254
  2385.    nkf@vnet.ibm.com
  2386.  
  2387.    Andre Fredette
  2388.    Bay Networks Inc
  2389.    3 Federal Street
  2390.    Billerica, MA  01821
  2391.    508-916-8524
  2392.    fredette@baynetworks.com
  2393.  
  2394.    George Swallow
  2395.    Cisco Systems, Inc
  2396.    250 Apollo Drive
  2397.    Chelmsford, MA 01824
  2398.    508-244-8143
  2399.    swallow@cisco.com
  2400.  
  2401.    Arun Viswanathan
  2402.    IBM Corp.
  2403.    17 Skyline Drive
  2404.    Hawthorne NY 10532
  2405.  
  2406.  
  2407.  
  2408. Callon et al.          Expires November 12, 1997               [Page 43]
  2409.  
  2410. INTERNET DRAFT             Framework for MPLS               May 12, 1997
  2411.  
  2412.  
  2413.    914-784-3273
  2414.    arunv@vnet.ibm.com
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464. Callon et al.          Expires November 12, 1997               [Page 44]
  2465.  
  2466.